コード例 #1
0
ファイル: testsuite.py プロジェクト: wollo72/pylcdsysinfo
    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')
コード例 #2
0
ファイル: write-image.py プロジェクト: wollo72/pylcdsysinfo
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)