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

Phi*_*tto 13 vector-graphics ios xcode7

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

矢量化PDF文件的XCode配置

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

在此输入图像描述

任何人都可以向我解释这些差异来自哪里,也许我可以如何提高生成图像的质量?

提前致谢.

Iai*_*ith 15

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

在此处输入图片说明

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


Ham*_*ari 12

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

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

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

3 - 选择您的图像并从属性检查器选项卡(1.check Preserve Vector Data AND 2.set Scales type in Single Scale)

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

imgVec.image = UIImage.init(named: "yourImageName")
Run Code Online (Sandbox Code Playgroud)

  • @HamidRezaAnsari 起初我是:这毫无意义,但我会尝试一下,经过测试,这是真的!天哪苹果!!!谢了哥们 (4认同)
  • @达斯汀。当我在故事板中设置图像名称时,图像变得模糊,当我在代码中设置该名称时,图像完美显示 (2认同)

Tom*_*min 11

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

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

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

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

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