最近撰写毕业论文时,使用的Latex写作,其中遇到一个问题,由于很多普片存在,很多PNG图片只能用pdflatex进行编译,但是编译后的中文复制出来后都是乱码,非常麻烦,于是采用latex编译,但是默认图片必须是eps或者pdf,网上找到解决方案,快速将png图片转换为eps格式。具体解决办法见链接:
http://cherishlc.iteye.com/blog/1727490
写Latex时经常要将png、jpg文件转为eps的,每次都用photoshop或者matlab很麻烦,,,,发现ImageMagick还不错~
1、下载
到下列网址下载了安装即可
http://www.imagemagick.org/script/binary-releases.php#windows
支持的文件格式:http://www.imagemagick.org/script/formats.php
2、eps文件的处理
据说需要安装GhostScript,没测试,反正CTex中带有GhostScript。
3、写好的批处理文件
下列代码用于将当前目录的jpg、png文件转换为eps文件,注意是eps3的,据说转换后文件比较小,实际真的比较小,500k对比30M啊!!!兼容性不知道。。。反正我的CTex用着没问题。
图片大小设为高度或宽度均得小于1600像素(数值随便设的,否则大图片显示不全啊!!)
- for %%I in (*.jpg) do convert -resize "1600x1600>" %%I eps3:%%~nI.eps
- for %%I in (*.png) do convert -resize "1600x1600>" %%I eps3:%%~nI.eps
4、输出图片大小有关的选项
参见: http://www.imagemagick.org/script/command-line-processing.php#geometry
除了下列选项外,貌似 -page选项也比较有用,没测试
附录:参考及转载
convert的更多有用选项:
转载自: http://blog.sina.com.cn/s/blog_44a0dd4c0100cqq8.html
引用 convert.exe
最简单的用法:convert.exe aaa.jpg aaa.png
可能用到的参数(没用到的我就不解释了,是在太多):
-layers flatten:在转换psd文件的时候用于合并多图层为一个图层,否则的话转换多图层的psd图就会出现多张图,每张图对应一个图层。
例如:convert.exe -layers flatten aaa.psd aaa.jpg
-density 72:指定图片的解析度,也就是单位面积像素数,不知道这样理解对不对,默认的单位是inch。
-units PixelsPerInch:指定单位,这个配合-density使用,指定-density的单位,这个很重要啊,我发现有些图片的解析度单位是centimeter,这两个单位差得还是比较远的。
例如:convert.exe -density 72 -units PixelsPerInch aaa.tif aaa.jpg
-resize 1024x768:指定图片转换的大小。IM会自动判断图片的宽和高进行等比压缩。但是这会有个问题,就是当图片小于1024x768时会将图片强制放大。可以在1024x768后面加上'>','<'等限定符来限制转换行为。1024x768>是只转换大于1024x768的图,1024x768<只转换小于1024x768的图。其他限定符请参考手册。
例如:convert.exe -resize "1024x768>" aaa.tif aaa.jpg
注意:1024x768>要用引号扩起来,否则'>'会被系统解释为输出重定向。
-filter Lanczos:指定转换图片时的过滤器,通常配合-resize使用。有很多种过滤器,挨个试了之后觉得这个合适,其他的也不懂。
-quality 100:指定jpeg的图片质量压缩比。默认是80%,我这里指定100%,最佳质量。
-colorspace rgb:指定转换后图片的色彩空间。有很多种色彩空间,PC上使用rgb足矣。
+profile "*":删除图片附带的元数据信息,包括exif等等。这些数据很占空间的,所以直接删除。
idenfify.exe
这个工具用来查看图片的详细信息,包括色彩空间,图层信息等等。
查看图片的更多详细信息使用:identify.exe -verbose aaa.jpg
有了以上的参数,基本上能够搞定一切了。但是要让ImageMagick处理eps的图像文件,还需要安装另外一个软件包GhostScript,专门用来处理ps文件的,搜索一下下载就可以。
关于eps3选项用法转载自: http://blog.sciencenet.cn/home.php?mod=space&uid=47991&do=blog&id=535301
引用 convert fig.png eps3:fig.eps
这里的eps3表示用Level 3,Level指的是postscript所采用的compatibility level。Level 1效果最差而且文件很大,Level 2支持从jp*生eps文件,产生的文件也很小。Level 3包含了对Zlib压缩的支持,也可以从pn*生eps文件。通常来说,Level 3产生的文件最小,Level 2兼容性最好。