Есть битмап размером 100x100 пикселей, он растягивается и отображается в pictureBox формы,и выглядит это следующим образом (пискели мыльные, нету четкости изображения) Но при этом, если сохранить битмап как изображение и открыть его в программе windows для просмотра фото, растянув, то мы увидим следующую картину
На втором скриншоте чёткость заметно выше, с чем это может быть связано? И как добиться такой же четкости в pictureBox на форме?
Что-бы изображение не выглядело размитым при масштабировании, Вам нужно изменить режим интерполяции: Graphics.InterpolationMode = InterpolationMode.NearestNeighbor;
Можно сделать это вручную, при отрисовке изображения:
using (Graphics g = Graphics.FromImage(bmp))
{
g.InterpolationMode = InterpolationMode.NearestNeighbor;
g.DrawImage(bmp, new Rectangle(Point.Empty, bmp.Size));
}
или создать наследника PictureBox-а и переопределить OnPaint:
public class CustomPictureBox : PictureBox
{
private System.Drawing.Drawing2D.InterpolationMode interpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor;
public System.Drawing.Drawing2D.InterpolationMode InterpolationMode
{
get => interpolationMode;
set
{
interpolationMode = value;
this.Invalidate(); //перерисовываем
}
}
protected override void OnPaint(PaintEventArgs pe)
{
pe.Graphics.InterpolationMode = interpolationMode;
base.OnPaint(pe);
}
}
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости