需求
遇到一个重构需求,需要把原来xcode工程中的一个pdf文件转成png再上传到网络作为在线图片使用。pdf文件
xcode中使用pdf格式的矢量图的原因和方法见这篇文章Xcode项目中使用矢量图(pdf,svg)
问题
由于在线图床不支持pdf格式,需要把pdf转成png格式。先搜索转换的工具http://pdf2png.com/zh/,能够完成pdf到png的转换。
但由于这张图片是透明背景的圆形图片。转出来的png被加上了白色的底,不能满足要求。
解决
寻求其他的解决方案吧。我们在项目中使用pdf的时候是放在imageassert中的,也会起一个名字,使用的时候时候直接用这个名字。xcode是如何完成pdf转png的呢。或者说pdf转换出来的png放在哪个路径下了?答案是Assets.car文件,这是Xcode的图片集(Images.xcassets)打包后生成的。
找到打包后的ipa文件,改为zip后缀后解压,查看对应的包资源,找到Assets.car。但是Apple并没有提供查看这个文件的工具。找到一个cartool工具
下载,编译,运行工具,搞定收工。
./cartool /xxx/Assets.car /xxx/output