PDFsharp 以 72 DPI 绘制图像,如果分辨率更高则绘制 "smaller"
PDFsharp drawing images at 72 DPI, if more resolution it is drawn "smaller"
我正在 PDFSharp 文档中绘制 100 x 100 像素的图像。
图像是使用以下方法绘制的:
g.DrawImage(image, new Point(x, y));
这里的问题是,如果我从相同的坐标 x、y 开始绘制一个矩形,并使用 100x100 作为尺寸……矩形比图像大。
如果我在 DrawImage 中使用其他重载,设置容器矩形,图像适合矩形但会失去质量(放大)。
我认为是分辨率不同之类的问题。
有什么想法吗?
更新: 我将图像调整为 133x133 以适应 100x100 的矩形。造成这种差异的原因是什么?相差 33%。
我的解决方案: 在检索图像并将其缩放以适合矩形时,您需要考虑图像的大小以 PIXELS 为单位,并且在绘制时PDF 以点为单位。如果你的图像是 96 DPI,你需要增加它的尺寸乘以“96/72”(这是我得到的 33%),这样你就会看到你所期望的(即使你使用容器矩形绘制它或者只是起始坐标)。
设置image.Interpolate = false;
以禁用抗锯齿并增加小图像的清晰度。
PDF 中没有 "pixels"。 DrawImage 具有允许绘制具有特定大小的图像的重载。
如果省略尺寸(像您一样),尺寸将由图像的 DPI 设置决定。会不会是你的图片设置为96 DPI?
100x100 的矩形使用点 - 每英寸有 72 个点。
当您设置大小时,图像不会失去质量。 "quality loss" 取决于查看器的缩放级别。
您可以设置提示以防止 Adobe Reader 消除图像锯齿。
更新:
设置 image.Interpolate = false;
以禁用抗锯齿。
我正在 PDFSharp 文档中绘制 100 x 100 像素的图像。
图像是使用以下方法绘制的:
g.DrawImage(image, new Point(x, y));
这里的问题是,如果我从相同的坐标 x、y 开始绘制一个矩形,并使用 100x100 作为尺寸……矩形比图像大。
如果我在 DrawImage 中使用其他重载,设置容器矩形,图像适合矩形但会失去质量(放大)。
我认为是分辨率不同之类的问题。
有什么想法吗?
更新: 我将图像调整为 133x133 以适应 100x100 的矩形。造成这种差异的原因是什么?相差 33%。
我的解决方案: 在检索图像并将其缩放以适合矩形时,您需要考虑图像的大小以 PIXELS 为单位,并且在绘制时PDF 以点为单位。如果你的图像是 96 DPI,你需要增加它的尺寸乘以“96/72”(这是我得到的 33%),这样你就会看到你所期望的(即使你使用容器矩形绘制它或者只是起始坐标)。
设置image.Interpolate = false;
以禁用抗锯齿并增加小图像的清晰度。
PDF 中没有 "pixels"。 DrawImage 具有允许绘制具有特定大小的图像的重载。
如果省略尺寸(像您一样),尺寸将由图像的 DPI 设置决定。会不会是你的图片设置为96 DPI?
100x100 的矩形使用点 - 每英寸有 72 个点。
当您设置大小时,图像不会失去质量。 "quality loss" 取决于查看器的缩放级别。
您可以设置提示以防止 Adobe Reader 消除图像锯齿。
更新:
设置 image.Interpolate = false;
以禁用抗锯齿。