2016-03-03 78 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

相关问题