import sys from PIL import Image def main(): f = open(sys.argv[1], 'rb') data = f.read() f.close() use_bits = True BYTESPERLINE = 128 BITSPERLINE = BYTESPERLINE * 8 if use_bits: width = BITSPERLINE height = (len(data) * 8 + BITSPERLINE - 1) / BITSPERLINE else: width = BYTESPERLINE height = (len(data) + BYTESPERLINE - 1) / BYTESPERLINE img = Image.new('RGBA', (width, height)) for y in xrange(height): if use_bits: for x in xrange(width): idx = y * BYTESPERLINE + (x / 8) bitidx = x % 8 # 0 = topmost if idx >= len(data): img.putpixel((x,y), (255, 255, 255, 255)) else: v = ord(data[idx]) v = (v >> (7 - bitidx)) & 0x01 if v > 0: v = 0 else: v = 255 img.putpixel((x,y), (v, v, v, 255)) else: for x in xrange(width): idx = y * BYTESPERLINE + x if idx >= len(data): img.putpixel((x,y), (255, 255, 255, 255)) else: v = ord(data[idx]) img.putpixel((x,y), (v, v, v, 255)) img.save(sys.argv[2]) if __name__ == '__main__': main()