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" 取决于查看器的缩放级别。

您可以设置提示以防止 Adob​​e Reader 消除图像锯齿。

更新:
设置 image.Interpolate = false; 以禁用抗锯齿。