首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用c#将png文件转换为pcx文件

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

Stack Overflow用户
提问于 2016-03-03 16:13:46
回答 1查看 2.3K关注 0票数 6

我正在尝试将一个.png文件转换为一个.pcx文件。设想如下:

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

我见过这个职位链接到Magick库。在这篇文章中,OP试图将bmp文件转换为pcx文件,这并不是我想要实现的。我看了Magick 文档关于转换图像。我试着把这些图像转换成:

代码语言:javascript
复制
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窗体应用程序,用C#编写,使用.NET框架4.5.2编写。

编辑:

在这里,您可以看到一个如何打印带有pcx文件的标签的示例:

代码语言:javascript
复制
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库的方法可以找到这里

下载(a,b) 说明:下载mono图形文件到打印机参数: 字符串;文件名(包括文件检索路径) 字符串,要在打印机内存中下载的文件的名称(请使用大写字母) 来源:instruction.pdf

编辑II:

正在工作的pcx文件(使用photoshop创建)如下(如果它对您有所帮助):

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-04 08:54:24

PCX文件 (充其量)基于调色板。

因此,要创建有效的pcx输出,需要添加以下一行:

代码语言:javascript
复制
using (MagickImage image = new MagickImage(sourcePng))
{
    image.Format = MagickFormat.Pcx;
    image.ColorType = ColorType.Palette;  // <----
    image.Write(targetPcx);
}

您的图像为pcx文件

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35777327

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档