我一定是做错了什么。我尝试将图像渲染为 PDF 到 iOS 中的 pdfContext 和使用 PDFSharp 的 PDF。当我这样做时,与我在 Photoshop 或 Microsoft 的图片预览中打开它时相比,它是模糊的。所以也许我不明白图像本身发生了什么。这是我所知道的:
图像尺寸为 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)];
两者都会产生模糊的结果。我不确定为什么。我不知道如何选择要绘制的尺寸是否是我遗漏的东西。如果我需要向我们的图形艺术家索取不同分辨率/尺寸的图像,或者这是我进行绘图调用的方式。如果我以一半大小绘制图像,它会更清晰。
例如
gphx.DrawImage(image, leftStartDefault, 50, 45, 10);
有什么想法吗?谢谢。
最佳答案
我意识到这是旧问题,也许不再是问题,但我遇到了同样的问题。
我找到了 this thread在有一定用处的 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 文档首先没有像素概念引起的。
关于c# - 将图像渲染为 pdf 是模糊的,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14268154/