C# 如何画出尽可能清晰的图像?
我知道大多数人总是试图获得平滑设置,但这一次,因为我正在打印条形码,我需要了解如何告诉e.Graphics以尽可能清晰的设置打印我的图像。请记住,我的当前设置产生了迄今为止我能够测试的最佳效果,但是,一旦我将其打印到文件并放大500%,您仍然可以看到一点平滑度 以下是我目前的代码:C# 如何画出尽可能清晰的图像?,c#,winforms,graphics,gdi+,C#,Winforms,Graphics,Gdi+,我知道大多数人总是试图获得平滑设置,但这一次,因为我正在打印条形码,我需要了解如何告诉e.Graphics以尽可能清晰的设置打印我的图像。请记住,我的当前设置产生了迄今为止我能够测试的最佳效果,但是,一旦我将其打印到文件并放大500%,您仍然可以看到一点平滑度 以下是我目前的代码: private void printDocument1_PrintPage_1(object sender, PrintPageEventArgs e) { double pdf417_widthDPI =
private void printDocument1_PrintPage_1(object sender, PrintPageEventArgs e)
{
double pdf417_widthDPI = Math.Round(((double)picpdf417.Image.Width / (double)288) * 2, 2);
double pdf417_heightDPI = Math.Round(((double)picpdf417.Image.Height / (double)288) * 2, 2);
int newWidth = (int)Math.Round(pdf417_widthDPI * 96);
int newHeight = (int)Math.Round(pdf417_heightDPI * 96);
Rectangle pdf417_location_size = new Rectangle(0, 100, newWidth, newHeight);
e.Graphics.CompositingQuality = CompositingQuality.HighSpeed;
e.Graphics.SmoothingMode = SmoothingMode.None;
e.Graphics.InterpolationMode = InterpolationMode.Low;
e.Graphics.PixelOffsetMode = PixelOffsetMode.None;
e.Graphics.DrawImage(picpdf417.Image, pdf417_location_size);
}
也许你应该试试插值模式。最近的邻居:关闭但。。。不是100%锋利。有什么想法吗?我怀疑如果你不把你的图像画进一个高度和宽度都是原始图像整数倍的区域,你很可能会得到灰色。如果你尝试这个,你看到有什么改进吗?让我们看看。。。原件是290x78。调整大小使其为193 x 52。作为测试,只需将其按全尺寸绘制(即使它不适合)-是否更清晰?另一种方法是在中间缓冲区中绘制,然后使用并将每个像素舍入为黑色或白色。请注意,这里有一个潜在的问题,即此舍入将使杆稍微移动-确保您在标准的公差范围内!当然,最好的解决方案是按照您需要的最终尺寸生成原始条形码。。。