用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
另存,再次扔到虚拟机测试,搞定,瓦哈哈哈。