#!/usr/local/bin/ruby # convert IP data file to bitmap file # last modified 2004.1.17 imgfile="" if ARGV.size>0 imgfile=ARGV[0] else print "input ipf filename: " imgfile=STDIN.readline imgfile.chomp! end bmpfile="bmpout.bmp" s='' open(imgfile,"rb"){|f| s=f.read} width=4000 height=2000 filesize=0x36+4*0x100+width*height h='Qk0AAAAAAAAAADYEAAAoAAAAAAAAAAAAAAABAAgAAAAAAAAAAADEDgAAxA4AAAAAAAAAAAAA'.unpack("m")[0] for i in 0..3 do h[0x12+i]=width%0x100;width/=0x100;end for i in 0..3 do h[0x16+i]=height%0x100;height/=0x100;end for i in 0..3 do h[0x02+i]=filesize%0x100;filesize/=0x100;end for i in 0..3 do h[0x22+i]=filesize%0x100;filesize/=0x100;end for i in 0...0x100 tmp="\x0"*4 tmp[0]=0xff-i tmp[1]=0xff-i tmp[2]=0xff-i h+=tmp end c=0 print "Now calculating...\n" for i in 0...2000 print "line #{i} finished\n" for j in 0...4000 tmp=s[c+1] tmp=0xff if s[c]>0 # tmp=(~tmp)<<8+0x8000 if tmp>=0x8000 h<