【发布时间】:2016-11-26 10:38:53
【问题描述】:
我正在尝试使用 Magick.Net 调整图像大小。但是我压缩的图像尺寸更大,位深度为 32,而原始图像的位深度为 2。我也想保留或减少位深度。 这是我的代码。
var imageMacig = new MagickImage(filePath);
//Percentage p = new Percentage(60);
//imageMacig.Threshold(p); // 60 is OK
imageMacig.VirtualPixelMethod = VirtualPixelMethod.Transparent;
imageMacig.Depth = 1;
imageMacig.FilterType = FilterType.Quadratic;
imageMacig.Transparent(MagickColor.FromRgb(0,0,0));
imageMacig.Format = MagickFormat.Png00;
imageMacig.Resize(newWidth, newHeight);
imageMacig.Write(targetPath);
imageMacig.Dispose();
originalBMP.Dispose();
【问题讨论】:
-
为什么你首先创建一些“图像”,然后从中创建“originalBMP”,然后再创建MagickImage?为什么不直接从文件创建 MagickImage?
-
我在使用 MagickImage 之前尝试过其他方法。我首先使用 System.Drawing.Imaging 来调整大小,然后使用 MagickImage。
-
所以首先尝试完全删除您的“图像”和“原始BMP”(以及与它们相关的所有内容)并从文件中构造MagickImage。
-
我按照你说的做了,但有些图像是 1 位的,有些是 32 位的。你能告诉我如何保持图像透明吗?我似乎图像也不透明。
-
如果您在删除不必要的东西后用代码更新您的问题会很好。如果您附加\添加指向您遇到问题的示例图像的链接,那就更好了。
标签: c# .net magick.net