#!/usr/bin/env python """ Image tests- Check that images from different source formats are correctly converted to ESC/POS column & raster formats. :author: `Michael Billington `_ :organization: `python-escpos `_ :copyright: Copyright (c) 2016 `Michael Billington `_ :license: MIT """ from escpos.image import EscposImage def test_image_black(): """ Test rendering solid black image """ for img_format in ["png", "jpg", "gif"]: _load_and_check_img("canvas_black." + img_format, 1, 1, b"\x80", [b"\x80"]) def test_image_black_transparent(): """ Test rendering black/transparent image """ for img_format in ["png", "gif"]: _load_and_check_img( "black_transparent." + img_format, 2, 2, b"\xc0\x00", [b"\x80\x80"] ) def test_image_black_white(): """ Test rendering black/white image """ for img_format in ["png", "jpg", "gif"]: _load_and_check_img( "black_white." + img_format, 2, 2, b"\xc0\x00", [b"\x80\x80"] ) def test_image_white(): """ Test rendering solid white image """ for img_format in ["png", "jpg", "gif"]: _load_and_check_img("canvas_white." + img_format, 1, 1, b"\x00", [b"\x00"]) def test_split(): """ test whether the split-function works as expected """ im = EscposImage("test/resources/black_white.png") (upper_part, lower_part) = im.split(1) upper_part = EscposImage(upper_part) lower_part = EscposImage(lower_part) assert upper_part.width == lower_part.width == 2 assert upper_part.height == lower_part.height == 1 assert upper_part.to_raster_format() == b"\xc0" assert lower_part.to_raster_format() == b"\x00" def _load_and_check_img( filename, width_expected, height_expected, raster_format_expected, column_format_expected, ): """ Load an image, and test whether raster & column formatted output, sizes, etc match expectations. """ im = EscposImage("test/resources/" + filename) assert im.width == width_expected assert im.height == height_expected assert im.to_raster_format() == raster_format_expected i = 0 for row in im.to_column_format(False): assert row == column_format_expected[i] i += 1