diff options
Diffstat (limited to 'bin2img.in')
-rwxr-xr-x | bin2img.in | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/bin2img.in b/bin2img.in new file mode 100755 index 0000000..08dbce7 --- /dev/null +++ b/bin2img.in @@ -0,0 +1,37 @@ +#!/usr/bin/python +''' +Convert binary framebuffer to an image +''' +from __future__ import print_function, division, unicode_literals +import argparse,struct +from binascii import b2a_hex + +def parse_arguments(): + parser = argparse.ArgumentParser(description='Convert binary framebuffer to an image.') + parser.add_argument('input', metavar='INFILE', type=str, + help='Texture raw file') + parser.add_argument('output', metavar='OUTFILE', type=str, + help='Output image') + parser.add_argument('-w', dest='img_width', type=int, + help='Width of image to export') + return parser.parse_args() + +def main(): + args = parse_arguments() + with open(args.input, 'rb') as f: + data = f.read() + + if args.img_width is None: + print('Specify width of image with -w') + exit(1) + + width = args.img_width + height = len(data)//(width*4) + + from PIL import Image + img = Image.frombuffer("RGBX", (width, height), data, "raw", "RGBX", 0, 1) + img = img.convert("RGB") + img.save(args.output) + +if __name__ == '__main__': + main() |