尽管源/目的地维度相同,但图像模糊图像模糊



我需要将生成的一些位图复制到较大的对象(例如picturebox(,所以我正在使用drawimage做到这一点,但是结果重复是模糊的,好像gdi 在试图尝试缩放图像,除了两个页面都相同,DPI分辨率是相同的,源矩形和目标矩形是相同的宽度和高度。

如果源X和目标X,Y点为0,0,则绘制符号效果很好,但是如果我将目标X.Y位置更改为其他任何东西(即使宽度和高度相同(,则结果是模糊的。p>我已经尝试了每一个绘图超载,结果始终相同。除非原点和目的地x,y位置相同,否则图像将模糊。

private void DrawStringVerticalStackingV4(string text, Graphics g, SizeF sizeMaxArea, PointF startPoint, Font font, Brush brush, StringFormat sf)
        {
            Bitmap bmp = new Bitmap(100, 10, g);
            Graphics gBmp = Graphics.FromImage(bmp);
            gBmp.PageUnit = g.PageUnit;
            // Some stuff being drawn...
            // Draw the bitmap on the original canvas
            RectangleF destRect = new RectangleF(startPoint.X, startPoint.Y, gBmp.VisibleClipBounds.Width, gBmp.VisibleClipBounds.Height);
            RectangleF srcRect = new RectangleF(0, 0, gBmp.VisibleClipBounds.Width, gBmp.VisibleClipBounds.Height);
            g.DrawImage(bmp, destRect, srcRect, g.PageUnit);
            // Housekeeping
         }

除非毁灭和SRCret具有相同的x和y,否则结果却略微扭曲了,就像GDI 试图扩展图像一样。

进一步进行此操作后,汉斯·普(Hans Passant(是正确的。设置Graphics.interpolationmode到最近的伯尔堡工作完美。

此问题仅在您的pageunit除了像素之外其他任何东西时才发生。我的小脑将其视为逻辑错误,因为源矩形和目标矩形都具有完全相同的宽度和高度。唯一不同的是目的地X和Y位置。不应该发生失真。

非常感谢您的帮助!

最新更新