XCode:来自PDF质量不佳的矢量图像

时间:2015-11-09 15:45:07

标签: ios xcode7 vector-graphics

对于我的iOS Swift项目,我使用矢量化的pdf文件,XCode从这些文件中呈现@ 1x,@ 2x,@ 3x图像。

XCode configuration for vectorized PDF file

当我将PDF生成的图像质量与相同尺寸的普通PNG图像进行比较时,我发现它们之间的质量存在很大差异。从理论上讲,下图中第一行和第三行的质量应该相同,因为我的iPhone 6上的54x40 PDF应该使用普通的视网膜显示器渲染和使用108x80图像。不幸的是,质量远非一样。

enter image description here

有人可以向我解释这些差异的来源,也许我可以如何提高生成图像的质量?

提前致谢。

3 个答案:

答案 0 :(得分:12)

在UIImage中设置矢量图像的步骤:

1-将您的svg图像转换为pdf格式

2-将pdf图片添加到您的资产

3-选择图像,然后从“属性检查器”选项卡中选择(1.选中“保留矢量数据”和“ 2.在单刻度中设置刻度类型”

4(非常重要)-在代码中而不是在故事板中设置图像名称

imgVec.image = UIImage.init(named: "yourImageName")

答案 1 :(得分:10)

我将在此处的资产上设置Preserve Vector Data标志:

enter image description here

这将使其呈现为pdf并正确缩放。

答案 2 :(得分:9)

PDF应以1倍的分辨率保存,Xcode将获取该文件并对其进行栅格化,为您生成@ 1x,@ 2x和@ 3x位图版本。

在您的情况下,将从您的PDF生成3个具有以下尺寸的PNG:

  • icon.png(54x40px)
  • icon@2x.png(108x80px)
  • icon@3x.png(162x120px)

从您发布的屏幕截图中可以看出,单元格中的UIImageView的大小与图标相匹配,因此您可以获得模糊效果。重要的是要理解矢量图像不会被这样使用,但总会被栅格化。

尝试使用UIImageView的分辨率(根据您的评论100x82px)保存PDF并再次检查结果。