2

我有以下.png -file

我想用 Magick.NET 将其转换为.pcx文件。我使用以下代码进行转换:

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)

4

1 回答 1

3

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

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

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

在此处输入图像描述

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

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;
}
于 2016-06-01T11:47:51.610 回答