4 25 2008

用Vim修复GIMP生成的xpm文件

Published by muzuiget at 9:49 上午 under Graphics, Vim

用Vim修复图片?没错。上次弄了个Slax/Fanx的Grub背景文件,那是在Windows下先用IrfanView转换为索引14色,然后用XnView转换为xpm文件。以前在Linux下用过convert命令也转换过xpm,用这两种方法的生成的xmp文件都能在Grub4dos下用。

用GIMP(在Windows下)也做出14色的xpm文件,但偏偏作出来的xpm不能在Grub4Dos下用,很郁闷,但却能在IrfanView和XnView浏览。好奇用Vim打开xpm文件,居然是个文本文件,里面是一个C结构,Vim居然支持xpm显示。对比一下用3种方法生成的xpm,用convert转的跟用GIMP生成的代码一样。但为什么偏偏是GIMP的在Grub4Dos用不了呢?

无头绪之际顺便用记事本打开一下。哟,在Vim里看来相同的代码在记事本看就不同了。那就是换行问题,convert命令转的xpm出现一个个黑方格,代码没有换行。众所周知dos/win那帮家伙是用一个回车符和一个换行符代表换行的,而unix只用一个换行符。Vim能自动分析2种并正确显示,所以两者看来都是一样的。记事本就没这能耐啦,其中一个出现了黑黑的方格。XnView转换的xpm文件也是出现黑方格。

猜想是用GIMP生成的xpm是dos/win方式换行的,多了的回车符就是问题所在。需要把每行的回车符干掉。立马使用

:set fileformats=unix

然后

w new.xpm

另存,再次扔到虚拟机测试,搞定,瓦哈哈哈。

2 Responses to “用Vim修复GIMP生成的xpm文件”

  1. Abuddyon 21 7 2008 at 5:33 下午

    你好!
    问个问题:
    我在RedHat linux中使用这样的语句:
    convert -geometry 640×480 -colors 14 image.jpg image.xpm
    命令运行完毕后产生的image.xpm是灰色的,与原来彩色图象相差太远了。
    这是为什么啊?

  2. muzuigeton 22 7 2008 at 11:34 上午

    @Abuddy
    你好,产生的image.xpm是灰色的原因我不知道,抱歉。至于原来彩色图象相差太远了,因为只有14种颜色,表达能力有限。我干脆写了篇优化技巧和心得,欢迎阅读。

Trackback URI | Comments RSS

Leave a Reply