为什么我使用Magick.NET进行转换会产生黑色的PCX文件?

时间:2016-06-01 11:16:45

标签: imagemagick magick.net

我有 .png - 文件

我想用Magick.NET转换为 .pcx -file。我使用以下代码进行转换:

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-AnyCPU 7.0.1.500(Net40)

1 个答案:

答案 0 :(得分:2)

我真的不会说.NET,Dirk(@dlemstra)就是那个人,但问题是所有(白色)信息实际上都在alpha层和基本图像本身只是纯黑色,ImageMagick正确地完成了这项工作,因为PCX无法呈现透明度。

如果你像这样提取alpha层,你可以看到我的意思:

convert http://i.stack.imgur.com/ptOHf.png -alpha extract a.jpg

enter image description here

在命令行中,您可以使用-flatten

为Alpha图层创建ImageMagick帐户
convert http://i.stack.imgur.com/ptOHf.png -flatten result.pcx

我不知道,但我想在.NET,你会做类似的事情:

using (var magickImage = new MagickImage(bitmap))
{
  magickImage.Flatten();
  magickImage.Format = MagickFormat.Pcx;
  magickImage.ColorType = ColorType.Palette;
  magickImage.ColorSpace = ColorSpace.Gray;
}