0

在 Magick.NET 中调整具有透明度的图像大小时遇到​​了一些奇怪的问题。我正在使用 Q16-AnyCPU。

我正在将 100 像素的图像调整为 400 像素。

MagickImage image = new MagickImage("test.png");
image.Resize(400, 400);
image.Write("test_resized.png");

我尝试了许多组合,image.FilterTypeimage.Interpolate没有任何好的结果。只有当我使用时image.AdaptiveResize(400, 400);,它看起来会好一些,但并不像预期的那样。我要调整大小的最终图像要大得多,而且AdaptiveResize速度很慢。

当我通过禁用 Alpha 时,image.Alpha(AlphaOption.Off);我看起来很好,但我想保留 alpha。

源图像(白色区域是透明的):

白色区域是透明的

我得到什么:

错误的结果

我想要的是:

用 Photoshop 调整大小

4

1 回答 1

0

我必须设置VirtuaPixelMethod,谢谢提示:

MagickImage image = new MagickImage("test.png");
image.VirtualPixelMethod = VirtualPixelMethod.Transparent;
image.Resize(400, 400);
image.Write("test_resized.png");
于 2015-10-24T10:53:45.703 回答