使用C#和GDI +调整半透明图像的大小会导致透明度与不透明相遇的模糊灰线

时间:2017-02-27 18:55:19

标签: c# image transparency gdi+ image-resizing

我已经查看了Ghost-borders ('ringing') when resizing in GDI+之类的其他问题来尝试解决我的问题,但是他们并没有完全解决我遇到的问题,因为他们只是在解决问题时才解决问题图像。

我的图像在一半上是透明的而在另一半上是不透明的:

image with transparency

当我调整此图像的大小时,我得到一条非常微弱的灰色线条,其中透明和不透明的连接相当于红色254,绿色254,绿色254和alpha 199。

我用来调整图片大小的代码是:

public static Bitmap ResizeBitmap(Bitmap sourceBMP, int width, int height)
    {
        try
        {
            Bitmap result = new Bitmap(width, height);
            using (Graphics g = Graphics.FromImage(result))
            {
                g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.HighQualityBicubic;
                g.DrawImage(sourceBMP, 0, 0, width, height);
            }
            sourceBMP.Dispose();
            sourceBMP = (Bitmap)result.Clone();
            result.Dispose();
            return sourceBMP;
        }
        catch (Exception ex)
        {
            return sourceBMP;
        }
    }

我已经尝试过更改合成模式,并且图像属性中的换行模式(我意识到这是没用的,因为我的问题不在边缘!)无济于事。如果可能的话,我将非常感谢能够提出解决方案的任何帮助。

0 个答案:

没有答案