使用 c# 将 png 文件转换为 pcx 文件

Posted

技术标签:

【中文标题】使用 c# 将 png 文件转换为 pcx 文件【英文标题】:convert a png file to a pcx file using c# 【发布时间】:2016-06-17 01:59:36 【问题描述】:

我正在尝试将 .png 文件转换为 .pcx 文件。场景如下:

我使用的是 TSC TTP-343C 标签打印机。在标签上我必须打印图像。 TSC 为开发人员提供library documentation。由于我只能使用 pcx 文件在这些标签上打印图像,因此我必须将所有图像转换为 pcx 图像。任何其他格式甚至不正确的 pcx 格式(例如,如果用户刚刚重命名文件结尾)都不会打印在标签上。

我看到 this post 链接到 Magick 库。在这篇文章中,OP 正在尝试将 bmp 文件转换为 pcx 文件,这并不是我想要实现的。我看了Magick documentation 关于converting images。我尝试将图像转换为:

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。

下载pcx(a,b)

说明:下载单声道PCX图形文件到打印机参数:

a:字符串;文件名(包括文件检索 路径)

b:字符串,要下载的文件名 打印机内存(请使用大写字母)

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

编辑二:

一个正常工作的 pcx 文件(使用 photoshop 创建)如下所示(如果对您有帮助的话):

【问题讨论】:

你有没有看到pcx format 是好的?或者你可以链接到一个工作示例吗?你需要颜色吗? @TaW 我在文档中找不到特定格式。我在我的问题中添加了一个工作示例(仅使用正确转换的 pcx 文件),请看一下。不需要颜色。打印机甚至无法打印我猜的颜色。 @TaW 我添加了一个 PCX 文件的屏幕截图,该文件正在解决我的问题。希望对你有帮助。 【参考方案1】:

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

【讨论】:

你不知道我现在有多感激!非常感谢。

以上是关于使用 c# 将 png 文件转换为 pcx 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何将emf文件转换成png格式

UWP C# 将 png 转换为 pdf

使用 ImageMagick 将 PNG 文件转换为 PDF 时出现粗糙的边缘

是否可以将 png 转换为分层的 PSD 文件?

使用 C# 将 SVG 转换为 PNG [关闭]

cximage功能简介