summaryrefslogtreecommitdiff
path: root/bin2img.in
diff options
context:
space:
mode:
authorRussell King <rmk@arm.linux.org.uk>2016-01-18 14:30:42 +0000
committerRussell King <rmk@arm.linux.org.uk>2016-01-18 14:30:42 +0000
commitd782ea474e5222d3ee1bee008c68a999a565be96 (patch)
treec7269a4acaf5ed5cdb813e3ef90f0cb4c172115f /bin2img.in
Initial commit
Add sources for etna-gpu-tools Signed-off-by: Russell King <rmk@arm.linux.org.uk>
Diffstat (limited to 'bin2img.in')
-rwxr-xr-xbin2img.in37
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()