调整半透明位图大小时的白色像素

时间:2013-01-22 20:28:29

标签: c# .net gdi+ system.drawing

有时当我调整半透明png的大小时,我会在形状边缘上得到奇怪的白色像素。只有具有形状(不是照片)且InterpolationMode设置为HighQualityBicubic的图像才会出现这种情况。有谁知道为什么这个白色像素显示?我只在一些图像上得到它们。

这是我得到的结果:

enter image description here

这是源文件:

enter image description here

这是类似的文件,不会导致“白色像素”效果。

enter image description here

绘图代码非常简单:

Bitmap resize = new Bitmap(1024, 177, PixelFormat.Format32bppArgb);
using (Graphics g = Graphics.FromImage(resize))
{
    g.InterpolationMode = InterpolationMode.HighQualityBicubic;
    g.DrawImage(Properties.Resources.Wave01, 0, 0, 1024, 177);
}

请注意,我使用HighQualityBicubic,因为该代码用于调整各种类型的图片,包括照片。使用InterpolationMode.Default似乎可以解决问题,但是调整某些图像类型可能会产生比HighQualityBicubic更糟糕的结果。

0 个答案:

没有答案