def test_fill_dimensions(): resize_root, images, filenames = create_tmp_images() white_img_fn, black_img_fn = filenames generated_img = fr.generate_image( op.join(resize_root, black_img_fn), op.join(resize_root, 'resized_black1.png'), width=600, height=700, format=fr.PNG, fill=True ) assert generated_img.width == 600 assert generated_img.height == 700 assert generated_img.getpixel((0, 0))[3] == 0 # Transparent generated_img = fr.generate_image( op.join(resize_root, black_img_fn), op.join(resize_root, 'resized_black2.jpg'), width=600, height=700, format=fr.JPEG, fill=True, ) assert generated_img.width == 600 assert generated_img.height == 700 assert generated_img.getpixel((0, 0)) == (255, 255, 255, 255) generated_img = fr.generate_image( op.join(resize_root, black_img_fn), op.join(resize_root, 'resized_black3.jpg'), width=600, height=700, format=fr.JPEG, fill=True, bgcolor=(100, 100, 100), ) assert generated_img.width == 600 assert generated_img.height == 700 assert generated_img.getpixel((0, 0)) == (100, 100, 100, 255)
def test_svg_resize_cairosvgimporterror(): resize_root = tempfile.mkdtemp() svg_path = op.join(resize_root, 'test.svg') with open(svg_path, 'w') as fp: fp.write('123') with pytest.raises(fr.exc.CairoSVGImportError): fr.generate_image( svg_path, op.join(resize_root, 'out.png'), format='png', width=50, height=50 )
def thumb(self, path, height=50): submission_id, img_filename = path.split('/')[-2:] thumb_filename = '%d_%s_%s' % (height, submission_id, img_filename) img_path = os.path.join('app', 'static', 'uploads', 'submissions', submission_id, img_filename) thumb_path = os.path.join('app', 'static', 'uploads', 'cache', thumb_filename) if not os.path.exists(thumb_path): generate_image(img_path, thumb_path, height=height, progressive=True) thumb_dir = os.path.join(os.getcwd(), 'app', 'static', 'uploads', 'cache') return send_from_directory(directory=thumb_dir, filename=thumb_filename, mimetype='image/jpg', as_attachment=False)
def test_svg_resize(): resize_root = tempfile.mkdtemp() svg_path = op.join(resize_root, 'test.svg') with open(svg_path, 'w') as fp: fp.write(SVG_DATA) generated_img = fr.generate_image( svg_path, op.join(resize_root, 'out.png'), format='png', width=50, height=50 ) assert generated_img.width == 50 assert generated_img.height == 50 expected = (0, 0, 0, 255) assert generated_img.getpixel((0, 0)) == expected assert generated_img.getpixel((49, 49)) == expected