Joa*_*son 1 .net c# printing graphics
作为我的应用程序的打印过程的一部分,我正在尝试打印缩小到指定宽度的图像列表,并将其放在另一个下面.问题是我无法弄清楚如何将图像的像素高度转换为打印期间图形对象使用的单位的高度.如何正确计算imageHeightPrint变量?
此代码段是图像打印循环的一部分,可缩小图像并计算其高度和下一图像的位置.
Image image = Image.FromStream(imageStream);
// Get proportional correct height
int imageHeight = image.Height * imageWidth / image.Width;
Image imageToPrint = image.GetThumbnailImage(imageWidth, imageHeight, null, IntPtr.Zero);
float imageHeightPrint = e.Graphics.DpiY * imageToPrint.Height / imageToPrint.VerticalResolution;
e.Graphics.DrawImage(imageToPrint, e.MarginBounds.Left, yPos);
yPos += imageHeightPrint;
Run Code Online (Sandbox Code Playgroud)
在解析文档后,我找到了正确的解决方案.
这一行:
float imageHeightPrint = e.Graphics.DpiY * imageToPrint.Height / imageToPrint.VerticalResolution;
Run Code Online (Sandbox Code Playgroud)
应该改成这个:
float imageHeightPrint = imageToPrint.Height /
imageToPrint.VerticalResolution * 100;
Run Code Online (Sandbox Code Playgroud)
我错过的最重要的事情是印刷高度应该是百分之一英寸.
| 归档时间: |
|
| 查看次数: |
4268 次 |
| 最近记录: |