将图像渲染为pdf是模糊的

本文关键字:模糊 pdf 图像 | 更新日期: 2023-09-27 17:51:13

我一定是做错了什么。我曾尝试将图像渲染为PDF,在iOS中的pdfContext和使用PDFSharp的PDF。当我这样做的时候,它比我在Photoshop或微软的图片预览中打开它的时候模糊。也许我不明白图像本身是怎么回事。以下是我所知道的:

图片尺寸为90 × 20(宽×高),分辨率为264 ppi。

如果要在PDFSharp中绘制,我需要:

XImage image = XImage.FromGdiPlusImage(Properties.Resources.logo);
gphx.DrawImage(image, leftStartDefault, 50, image.PointWidth, image.PointHeight);

我也试过image。PixelWidth,形象。上述代码中的PixelHeight。两者都会产生同样模糊的结果。

在iOS中,我使用

UIImage *logo = [UIImage imageNamed:@"logo.png"];
[logo drawInRect:CGRectMake(self.frame.size.width - 90 - 60, 20, 90, 20)];

都产生模糊的结果。我不知道为什么。我不知道这是不是我错过了如何选择大小绘制。如果我需要从我们的图形艺术家那里要求不同的分辨率/大小的图像,或者如果这是我进行绘图调用的方式。如果我把图像画成原来的一半大小,就更清楚了。

gphx.DrawImage(image, leftStartDefault, 50, 45, 10);

任何想法吗?谢谢。

将图像渲染为pdf是模糊的

我知道这是旧的,也许不再是一个问题,但我有同样的问题。

我在PDFSharp论坛上发现了这个帖子,它有点用。

据我所知,在paint中图像上的x像素不能以相同的方式传输到pdf中的图像中的y像素(至少在我的情况下)。在油漆中有100x100px的图像将在大约153x153px的pdf中应用相同的图像。我完全不知道为什么会发生这种情况,但是一旦我弄清楚了图像大小增加的因素,在pdf上打印图像就变成了一件简单的事情。

一样:

gfx.DrawImage(logo, 0, 0, ApplyTransform(logo.PointWidth), ApplyTransform(logo.PointHeight));
private static double ApplyTransform(double previous)
{
    return previous * .6538;
}

编辑:经过进一步的研究,我认为这是由于pdf文档一开始就没有像素的概念。

可能,PDF栅格化库使用不同,比Photoshop, Windows Viewer…算法的图像插值,它错误地应用于结果视图。此外,他们使用了不同的ICC配置文件,这也影响了渲染。