2016-03-03 218 views
5

我試圖將.png文件轉換爲.pcx文件。該場景如下:使用c將png文件轉換爲pcx文件#

我正在使用TSC TTP-343C標籤打印機。在標籤上我必須打印圖像。 TSC爲開發人員提供library documentation。由於我只能使用pcx文件在這些標籤上打印圖像,因此我必須將所有圖像轉換爲pcx圖像。任何其他格式或甚至不正確的pcx格式(例如,如果用戶剛更名爲文件結尾)將不會被打印在標籤上。

我看過this post鏈接到Magick庫。在這篇文章中,OP正試圖將一個bmp文件轉換爲一個pcx文件,這不是我想要達到的。我查看了關於converting imagesMagickdocumentation。我試圖將圖像轉換爲:

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文件。

有沒有辦法做這樣的轉換?如果是的話,我該怎麼做到呢?我的應用程序是一個Windows窗體應用程序,使用.NET框架4.5.2在C#中編寫。

編輯:

在這裏你可以看到一個例子,如何打印標籤與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庫的方法可以找到here

downloadpcx(A,B)

描述:下載單PCX圖形文件給打印機參數:

一個:字符串;文件名(包括文件檢索 路徑)

B:字符串,是在 打印機內存要下載的文件名(請用大寫字母)

來源:http://www.tscprinters.com/cms/upload/download_en/DLL_instruction.pdf

編輯二:

正在工作(使用Photoshop創建)的pcx文件看起來像這樣(如果它可以幫助你):

enter image description here

+0

你看到哪些[PCX格式]什麼(https://en.wikipedia.org/wiki/PCX)可以嗎?或者你可以鏈接到一個工作的例子?你需要顏色嗎? – TaW

+0

@TaW我在文檔中找不到特定的格式。我添加了一個工作示例(僅適用於正確轉換的pcx文件)到我的問題,請看看。顏色是不需要的。我想,打印機甚至無法打印顏色。 – Roman

+0

@TaW我添加了一個正在處理我的問題的PCX文件的屏幕截圖。希望它可以幫助你。 – Roman

回答

6

PCX files(最好)是基於調色板的。

所以要創建一個有效的PCX輸出需要添加這一行:

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

Your image as pcx file

+3

你現在不知道我有多感激!非常感謝你。 – Roman

相關問題