对于我的iOS Swift项目,我使用矢量化的pdf文件,XCode从这些文件中呈现@ 1x,@ 2x,@ 3x图像。
当我将PDF生成的图像质量与相同尺寸的普通PNG图像进行比较时,我发现它们之间的质量存在很大差异。从理论上讲,下图中第一行和第三行的质量应该相同,因为我的iPhone 6上的54x40 PDF应该使用普通的视网膜显示器渲染和使用108x80图像。不幸的是,质量远非一样。
有人可以向我解释这些差异的来源,也许我可以如何提高生成图像的质量?
提前致谢。
答案 0 :(得分:12)
在UIImage中设置矢量图像的步骤:
1-将您的svg图像转换为pdf格式
2-将pdf图片添加到您的资产
3-选择图像,然后从“属性检查器”选项卡中选择(1.选中“保留矢量数据”和“ 2.在单刻度中设置刻度类型”
4(非常重要)-在代码中而不是在故事板中设置图像名称
imgVec.image = UIImage.init(named: "yourImageName")
答案 1 :(得分:10)
答案 2 :(得分:9)
PDF应以1倍的分辨率保存,Xcode将获取该文件并对其进行栅格化,为您生成@ 1x,@ 2x和@ 3x位图版本。
在您的情况下,将从您的PDF生成3个具有以下尺寸的PNG:
从您发布的屏幕截图中可以看出,单元格中的UIImageView的大小与图标相匹配,因此您可以获得模糊效果。重要的是要理解矢量图像不会被这样使用,但总会被栅格化。
尝试使用UIImageView的分辨率(根据您的评论100x82px)保存PDF并再次检查结果。