绘制高精细度抗锯齿且背景透明的图片(R+Illustrator/Cairo)

        在工作和学习中,经常需要制作精美的矢量图片以用以展示(比如通过PPT或者视频等),这对于图片的绘制提出了更高的要求,一是要具有高精细度,不能出现明显的锯齿;二是要背景透明,这点之所以重要,是为了在制作展示文件时,便于统一更换背景,实现图片与背景的完美融合。这里以R语言为例来说明如何实现【当然,如果采用其他语言可能压根就不存在这个问题,那就可以略去】,以作为借鉴。

        R语言默认自带的绘图设备绘制的图形存在严重的锯齿问题,这使得对外展示的时候显得不专业(当然作为研究和学习之用是足够了,这可能也与R语言的定位有关)。具体来说,默认的图形设备保存为pdf和Postscript等矢量格式时可以做到精细展示,但是保存为jpg、png、bmp、tiff等常用的图片格式时则会存在严重的锯齿问题(尤其是图形中存在复杂的曲线时)。

        下图就是采用默认方式保存的图形打开的效果【具体的图形绘制代码此处就略去了】:

        看到图片中的锯齿了吧,这还只是一个简单图形,锯齿现象就这么严重,并且jpg、png、bmp、tiff等格式还较难实现背景透明。如果作为商业用途,显得太不专业了,难以接受。

        那么如何解决这个问题呢?一种方法就是提高图形的精细度,另一种方法就是采用外部的矢量图形工具。

        【1】一种比较好的高精细度绘图方案就是采用Cairo包,经过测试和比较,图形部分确实可以显著降低锯齿现象,但是图形中的文字的清晰度仍然不够完美(可能需要更高精细度的文字绘图包,这里就不搞那么复杂了)。参考代码如下:

library('Cairo')
CairoPNG(p,width=1000,height=1000,bg=NA)
q.plot.new4()  # 打开图形设备并设置坐标范围
circular(0,0,0.9,col=2)  # 此处可以更换为你的具体图形绘制代码
dev.off()

       pdf格式也可以实现高精细抗锯齿的效果,但是难以设置背景透明。pdf格式效果如下:

        【2】将用R绘制(使用默认的绘图设备即可)的矢量图形保存为eps格式,然后使用Illustrator软件导出为png格式。采用Illustrator转换后的高精细背景透明效果如下:

(上传到网站后看不出来透明效果,但原图实际背景是透明的)

        把它粘贴到PPT,再给PPT换个背景效果如下:

        是不是看起来就像那么回事了?最主要的是它不影响PPT换背景,这对于制作PPT来说就方便多了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值