3

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

图像尺寸为 90 x 20 (wxh)。分辨率为 264 ppi。

要在 PDFSharp 中绘制它,我会:

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

我也在上面的代码中尝试过 image.PixelWidth, image.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);

有什么想法吗?谢谢。

4

2 回答 2

2

我意识到这是旧的,也许不再是问题,但我遇到了同样的问题。

我在 PDFSharp 论坛上发现了这个线程,它很有用。

据我所知,绘画中图像上的 x 像素不会以相同的方式转移到 pdf 上图像中的 y 像素(至少在我的情况下)。拥有100x100pxin paint 的图像会将相同的图像应用于大约153x153px. 我完全不知道为什么会发生这种情况,但是一旦我弄清楚了图像大小增加的因素,“调整”图像以在 pdf 上打印就变得很简单了。

像这样:

gfx.DrawImage(logo, 0, 0, ApplyTransform(logo.PointWidth), ApplyTransform(logo.PointHeight));

private static double ApplyTransform(double previous)
{
    return previous * .6538;
}

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

于 2013-08-09T15:26:12.150 回答
0

可能,PDF 光栅化库使用不同于 Photoshop、Windows Viewer ...图像插值算法,这些算法错误地应用于结果视图。他们还使用了不同的ICC配置文件,这也会影响渲染。

于 2013-07-11T03:38:39.487 回答