最近在用AI做矢量图,但是遇到了一个很难搞的问题,当我们需要分辨率较高的图片的时候,Python用Matplotlib生成pdf时dpi参数会设置为600及以上,但这样的话就造成pdf文件过大以及AI卡顿两个问题,比如,下午生成的几个.pdf文件中,有一个文件的大小是90+Mb,AI导入非常困难,大概用了将近1小时我才对该文件内的图片进行了很少的修改。
为了解决AI卡顿这个问题,我找了很多办法,包括但不限于:
1、关闭集成显卡,使用电脑自带的独立显卡:
关闭集成显卡
2、更改AI的暂存盘:
来源: 改进 Windows 和 macOS 上的 Illustrator 性能 (adobe.com)
3、使用低分辨率EPS预览:
来源: 改进 Windows 和 macOS 上的 Illustrator 性能 (adobe.com)
4、禁用"消除图稿锯齿":
来源: 改进 Windows 和 macOS 上的 Illustrator 性能 (adobe.com)
尤其是方法一,对显卡性能要求非常高,耗电量巨大,但是上述方法都无济于事,AI还是很卡 。为了解决这个问题,我在各技术平台都找了,有抱怨的Adobe还在一个核心猛输出、或者是将链接改为手动,甚至是说让我放弃使用Adobe Illustrator 转用Adobe InDesign,但是后者矢量图做起来很麻烦,没有AI方便。
思前想后,终于找到了问题的突破点:改变PDF文件的大小!!!既然我改不了AI,那我就去修改PDF文件的大小,幸运的是,Matplotlib有这个参数:
python
ax3 = fig.add_subplot(1, 3, 3)
ax3.pcolormesh(xaxis, yaxis, photo3, cmap='jet', rasterized=True)
添加这个参数就好。
python
rasterized=True
通过该参数的控制,dpi保持不变的情况下原本要保存近100Mb的PDF文件最多只需几百Kb的内存,导入AI做矢量图非常快捷,我重新对这幅图片进行了调整,用时不到10分钟就解决了。
小tips:
试了一下,AI直接导出PNG格式图片时候,将分辨率调至1000+,Word中导入图片时,14号字与五号字大小相近,