首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么我与Magick.NET的转换会导致一个黑色的PCX文件?

为什么我与Magick.NET的转换会导致一个黑色的PCX文件?
EN

Stack Overflow用户
提问于 2016-06-01 11:16:44
回答 1查看 1.5K关注 0票数 2

我有以下..png文件

我想将它与Magick.NET转换成一个..pcx文件。我使用以下代码进行转换:

代码语言:javascript
复制
using System.Drawing;
using using ImageMagick;

using (var bitmap = (Bitmap) Bitmap.FromFile("ptOHf.png"))
using (var magickImage = new MagickImage(bitmap))
{
  magickImage.Format = MagickFormat.Pcx;
  magickImage.ColorType = ColorType.Palette;
  magickImage.ColorSpace = ColorSpace.Gray;

  magickImage.Write("C:\\somefile.pcx");
}

这将产生以下结果:

使用的软件包:Magick.NET-Q8-任意7.0.1.500 (Net40)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-06-01 11:47:51

我不太会说.NET,Dirk (@dlemstra)就是这么说的人,但问题是,所有(白色)信息实际上都在alpha层,基本图像本身就是纯黑的,而ImageMagick已经正确地做到了这一点,因为PCX不能呈现透明度。

如果你像这样提取alpha层,你就会明白我的意思:

代码语言:javascript
复制
convert http://i.stack.imgur.com/ptOHf.png -alpha extract a.jpg

在命令行中,您将使用ImageMagick为alpha层设置-flatten帐户

代码语言:javascript
复制
convert http://i.stack.imgur.com/ptOHf.png -flatten result.pcx

我不知道,但我想在.NET中,你会做这样的事情:

代码语言:javascript
复制
using (var magickImage = new MagickImage(bitmap))
{
  magickImage.Flatten();
  magickImage.Format = MagickFormat.Pcx;
  magickImage.ColorType = ColorType.Palette;
  magickImage.ColorSpace = ColorSpace.Gray;
}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37567122

复制
相关文章

相似问题

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