6

.pngファイルをファイルに変換しようとしてい.pcxます。シナリオは次のとおりです。

TSC TTP-343C ラベルプリンターを使用しています。ラベルに画像を印刷する必要があります。TSC は、開発者向けのライブラリ ドキュメントを提供します。pcx ファイルを使用してこれらのラベルに画像を印刷することしかできないため、すべての画像を pcx 画像に変換する必要があります。他の形式や不適切な pcx 形式 (たとえば、ユーザーがファイル末尾の名前を変更した場合) は、ラベルに印刷されません。

ライブラリにリンクしているこの投稿を見てきました。Magickこの投稿では、OP が bmp ファイルを pcx ファイルに変換しようとしていますが、これはまさに私が達成しようとしているものではありません。画像の変換に関するMagick ドキュメントを見ました。私は次のように画像を変換しようとしました:

using (MagickImage img = new MagickImage(png)) // png is a string containing the path of the .png file
{
    img.Format = MagickFormat.Pcx;
    img.Write(pcx); // pcx is a string containing the path of the new .pcx file
}

残念ながら、これは画像を正しく保存していません。ラベル プリンターはまだラベルにイメージを印刷できません。正しいpcxファイルを印刷しようとしましたが、これはうまくいきました。だから、それがまだ機能していない唯一の理由は、変換されたファイルが実際の pcx ファイルではないということだと思います。

そのような変換を行う方法はありますか?はいの場合、どうすればそれを達成できますか? 私のアプリケーションは、.NET Framework 4.5.2 を使用して C# で記述された Windows フォーム アプリケーションです。

編集:

ここでは、pcx ファイルを使用してラベルを印刷する方法の例を示します。

TSC.openport(sPrinterName);
TSC.setup("100", "100", "4", "8", "1", "3.42", "0");
TSC.clearbuffer();

TSC.downloadpcx(@"\\PathToPcxFile\test.pcx", "test.pcx");
TSC.sendcommand("PUTPCX 35," + y + ",\"test.pcx\"");

TSC.printlabel("1", "1");
TSC.closeport();

このコードは、実際の pcx ファイルで正常に機能します。TSC ライブラリのメソッドは、ここで見つけることができます。

ダウンロードpcx(a,b)

説明: mono PCX グラフィック ファイルをプリンターにダウンロードします。パラメーター:

文字列; ファイル名 (ファイル取得パスを含む)

b: 文字列、プリンタ メモリにダウンロードされるファイルの名前 (大文字を使用してください)

ソース: http://www.tscprinters.com/cms/upload/download_en/DLL_instruction.pdf

編集II:

動作している pcx ファイル (Photoshop を使用して作成) は次のようになります (役立つ場合):

ここに画像の説明を入力

4

1 に答える 1

6

PCX ファイルは (せいぜい) パレットベースです。

したがって、有効な pcx 出力を作成するには、次の 1 行を追加する必要があります。

using (MagickImage image = new MagickImage(sourcePng))
{
    image.Format = MagickFormat.Pcx;
    image.ColorType = ColorType.Palette;  // <----
    image.Write(targetPcx);
}

pcx ファイルとしてのイメージ

于 2016-03-04T08:54:24.537 に答える