diff --git a/pysstv/examples/gimp-plugin.py b/pysstv/examples/gimp-plugin.py index b50740a..5434462 100755 --- a/pysstv/examples/gimp-plugin.py +++ b/pysstv/examples/gimp-plugin.py @@ -136,12 +136,7 @@ def transmit_current_image(image, drawable, mode, vox, fskid): png_fn = generate_png_filename() try: pdb.gimp_file_save(image, drawable, png_fn, png_fn) - pil_img = Image.open(png_fn) - sstv_size = sstv.WIDTH, sstv.HEIGHT - if pil_img.size != sstv_size: - pil_img = pil_img.resize(sstv_size, Image.ANTIALIAS) - if 'grayscale' in sstv.__module__: - pil_img = pil_img.convert('LA').convert('RGB') + pil_img = match_image_with_sstv_mode(Image.open(png_fn), sstv) root = Tk() s = sstv(pil_img, 44100, 16) s.vox_enabled = vox @@ -170,6 +165,14 @@ def generate_png_filename(): os.fdopen(handle).close() return png_fn +def match_image_with_sstv_mode(image, mode): + mode_size = mode.WIDTH, mode.HEIGHT + if image.size != mode_size: + image = image.resize(mode_size, Image.ANTIALIAS) + if 'grayscale' in mode.__module__: + image = image.convert('LA').convert('RGB') + return image + register( "pysstv_for_gimp", "PySSTV for GIMP",