Мне нужно скопировать небольшое растровое изображение, сгенерированное мной, в более крупный объект (скажем, в PictureBox), поэтому я использую DrawImage для этого, но дубликат результата получается размытым, как будто GDI + пытается масштабировать изображение, за исключением того, что оба PageUnitsидентично, разрешение DPI одинаково, исходные и конечные прямоугольники имеют одинаковую ширину и высоту.
Если исходная и конечная точки X, Y равны 0,0, DrawImage работает отлично, но если я изменяю конечную точкуПоложение XY относительно чего-либо еще (даже если ширина и высота одинаковы), тогда результат будет размытым.
Я пробовал каждую перегрузку DrawImage, и результаты всегда одинаковы.Если исходная и конечная позиции 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
}
Если destRect и srcRect не имеют одинаковые X и Y, результат будет слегка искажен, как если бы GDI + пыталсямасштабировать изображение.