level 4
module B2b
module_function
def ws(string)
# string="0"*(8-string.size)+string
return ("0"*(8-string.size)+string).reverse
end
def btob(bitmap,filepath)
as=File.new(filepath,"wb")
as.write(["424d"].pack('H*'))
xx=bitmap.width%4
daxiao=54+(bitmap.width*3+xx)*bitmap.height
xxx=daxiao.to_s(16)
as.write([ws(xxx)].pack('h*'))
as.write(["000000003600000028000000"].pack('H*'))
kuan=bitmap.width.to_s(16)
as.write([ws(kuan)].pack('h*'))
gao=bitmap.height.to_s(16)
as.write([ws(gao)].pack('h*'))
as.write(["0100
18000000000
0"].pack('H*'))
daxiaos=(bitmap.width*3+xx)*bitmap.height
xxxx=daxiaos.to_s(16)
as.write([ws(xxxx)].pack('h*'))
as.write(["00000000000000000000000000000000"].pack('H*'))
for i in 0..(bitmap.height-1)
for u in 0..(bitmap.width-1)
se=bitmap.get_pixel(u,bitmap.height-1-i)
red=Integer(se.red)
green=Integer(se.green)
blue=Integer(se.blue)
re=red.to_s(16)
gr=green.to_s(16)
bl=blue.to_s(16)
if blue<16
as.write([bl].pack('h'))
else
as.write([bl].pack('H*'))
end
if green<16
as.write([gr].pack('h'))
else
as.write([gr].pack('H*'))
end
if red<16
as.write([re].pack('h'))
else
as.write([re].pack('H*'))
end
end
if bitmap.width%4>0
for i in 1..bitmap.width%4
as.write(["00"].pack('H*'))
end
end
end
end
end
插进去就好
2014年07月19日 07点07分



