我一定是做错了。我尝试使用PDFSharp将图像渲染为iOS中的pdfContext和PDF。当我这样做时,与我在Photoshop或微软的图片预览中打开它时相比,它很模糊。所以也许我不明白图像本身发生了什么。这就是我所知道的:
图像尺寸为90 x 20(宽x高)。分辨率为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)];
两者都会产生模糊的结果。我不知道为什么。我不知道如果选择要绘制的大小,我是否缺少这些东西。如果我需要从我们的图形艺术家那里索取不同的分辨率/尺寸图像,或者这是我进行绘图调用的方式。如果我以一半大小绘制图像,则更清晰。
e.g。
gphx.DrawImage(image, leftStartDefault, 50, 45, 10);
有什么想法?感谢。
答案 0 :(得分:1)
我意识到这是旧的,也许不再是问题,但我遇到了同样的问题。
我在PDFSharp论坛上找到了this thread,这有点用处。
据我所知,绘画中图像上的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文档首先没有像素概念。
答案 1 :(得分:0)
PDF光栅化库可能使用与Photoshop,Windows Viewer ... 图像插值算法不同的颜色,这些算法错误地适用于生成的视图。他们也使用了不同的ICC配置文件,它也会影响渲染。