def testimage_pattern_320x240_rgb888_png(self): filename = 'testpattern.png' """NOTE the rgb888 -> rgb565 conversion implemented in ffmeg is slightly different to the technique applied in image_to_raw(). This is why a different raw file is used, also testpattern_rgb565.bmp is already in rgb565 format, the png is full 16/24 bit depth. """ filename = os.path.join(IMAGE_320X240_DIR, filename) canon_filename = os.path.splitext(filename)[0] + '.raw' im = pylcdsysinfo.Image.open(filename) raw_data = pylcdsysinfo.image_to_raw(im) f = open(canon_filename, 'rb') canon_data = f.read() f.close() self.assertEqual(canon_data, raw_data, 'does not match canon')
try: slot = int(sys.argv[1]) if not 0 <= slot <= 7: raise ValueError("Out of bounds") except (ValueError, IndexError): usage() infile = sys.argv[2] if not os.path.isfile(infile): print("No such file '%s'" % (infile), file=sys.stderr) sys.exit(1) if pylcdsysinfo.Image: im = pylcdsysinfo.Image.open(infile) im = pylcdsysinfo.simpleimage_resize(im) rawfile = pylcdsysinfo.image_to_raw(im) else: # lets hope ffmpeg is available...... print('PIL not available, fallback to spawning ffmpeg') # Hack - redirect stderr to /dev/null to prevent noisy ffmpeg output bmpfile = subprocess.Popen("ffmpeg -f image2 -i %s -vcodec bmp -pix_fmt rgb565 -f image2 - 2>/dev/null" % (infile), shell=True, stdout=subprocess.PIPE).stdout.read() d = LCDSysInfo() if pylcdsysinfo.Image: d.write_rawimage_to_flash(large_image_indexes[slot], rawfile) else: d.write_image_to_flash(large_image_indexes[slot], bmpfile)