使用 Magick.NET 调整透明图像的大小
Resize transparent image with Magick.NET
在 Magick.NET 中调整具有透明度的图像大小时遇到一些奇怪的问题。我正在使用 Q16-AnyCPU。
我正在将 100 像素的图像调整为 400 像素。
MagickImage image = new MagickImage("test.png");
image.Resize(400, 400);
image.Write("test_resized.png");
我尝试了很多image.FilterType
和image.Interpolate
的组合,但都没有什么好的结果。
只有当我使用 image.AdaptiveResize(400, 400);
时,它看起来好一些,但并不像预期的那样。我要调整大小的最终图像要大得多,AdaptiveResize
非常慢。
当我通过 image.Alpha(AlphaOption.Off);
禁用 Alpha 时,我看起来相当不错,但我想保留 Alpha。
源图(白色区域透明):
我得到的:
我想要的:
我必须设置 VirtuaPixelMethod
,感谢提示:
MagickImage image = new MagickImage("test.png");
image.VirtualPixelMethod = VirtualPixelMethod.Transparent;
image.Resize(400, 400);
image.Write("test_resized.png");
在 Magick.NET 中调整具有透明度的图像大小时遇到一些奇怪的问题。我正在使用 Q16-AnyCPU。
我正在将 100 像素的图像调整为 400 像素。
MagickImage image = new MagickImage("test.png");
image.Resize(400, 400);
image.Write("test_resized.png");
我尝试了很多image.FilterType
和image.Interpolate
的组合,但都没有什么好的结果。
只有当我使用 image.AdaptiveResize(400, 400);
时,它看起来好一些,但并不像预期的那样。我要调整大小的最终图像要大得多,AdaptiveResize
非常慢。
当我通过 image.Alpha(AlphaOption.Off);
禁用 Alpha 时,我看起来相当不错,但我想保留 Alpha。
源图(白色区域透明):
我得到的:
我想要的:
我必须设置 VirtuaPixelMethod
,感谢提示:
MagickImage image = new MagickImage("test.png");
image.VirtualPixelMethod = VirtualPixelMethod.Transparent;
image.Resize(400, 400);
image.Write("test_resized.png");