2016-04-03 07:36:54 +00:00
|
|
|
#!/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 <michael.billington@gmail.com>`_
|
|
|
|
:organization: `python-escpos <https://github.com/python-escpos>`_
|
|
|
|
:copyright: Copyright (c) 2016 `Michael Billington <michael.billington@gmail.com>`_
|
2017-01-29 23:39:43 +00:00
|
|
|
:license: MIT
|
2016-04-03 07:36:54 +00:00
|
|
|
"""
|
|
|
|
|
|
|
|
from escpos.image import EscposImage
|
|
|
|
|
2016-04-13 11:27:51 +00:00
|
|
|
|
2016-04-03 07:36:54 +00:00
|
|
|
def test_image_black():
|
|
|
|
"""
|
|
|
|
Test rendering solid black image
|
|
|
|
"""
|
2021-10-30 16:15:22 +00:00
|
|
|
for img_format in ["png", "jpg", "gif"]:
|
|
|
|
_load_and_check_img("canvas_black." + img_format, 1, 1, b"\x80", [b"\x80"])
|
2016-04-03 07:36:54 +00:00
|
|
|
|
2016-04-13 11:27:51 +00:00
|
|
|
|
2016-04-03 07:36:54 +00:00
|
|
|
def test_image_black_transparent():
|
|
|
|
"""
|
|
|
|
Test rendering black/transparent image
|
|
|
|
"""
|
2021-10-30 16:15:22 +00:00
|
|
|
for img_format in ["png", "gif"]:
|
|
|
|
_load_and_check_img(
|
|
|
|
"black_transparent." + img_format, 2, 2, b"\xc0\x00", [b"\x80\x80"]
|
|
|
|
)
|
2016-04-03 07:36:54 +00:00
|
|
|
|
2016-04-13 11:27:51 +00:00
|
|
|
|
2016-04-03 07:36:54 +00:00
|
|
|
def test_image_black_white():
|
|
|
|
"""
|
|
|
|
Test rendering black/white image
|
|
|
|
"""
|
2021-10-30 16:15:22 +00:00
|
|
|
for img_format in ["png", "jpg", "gif"]:
|
|
|
|
_load_and_check_img(
|
|
|
|
"black_white." + img_format, 2, 2, b"\xc0\x00", [b"\x80\x80"]
|
|
|
|
)
|
2016-04-03 07:36:54 +00:00
|
|
|
|
2016-04-13 11:27:51 +00:00
|
|
|
|
2016-04-03 07:36:54 +00:00
|
|
|
def test_image_white():
|
|
|
|
"""
|
|
|
|
Test rendering solid white image
|
|
|
|
"""
|
2021-10-30 16:15:22 +00:00
|
|
|
for img_format in ["png", "jpg", "gif"]:
|
|
|
|
_load_and_check_img("canvas_white." + img_format, 1, 1, b"\x00", [b"\x00"])
|
2016-04-03 07:36:54 +00:00
|
|
|
|
2016-04-13 11:27:51 +00:00
|
|
|
|
2016-08-07 12:39:58 +00:00
|
|
|
def test_split():
|
|
|
|
"""
|
|
|
|
test whether the split-function works as expected
|
|
|
|
"""
|
2021-10-30 16:15:22 +00:00
|
|
|
im = EscposImage("test/resources/black_white.png")
|
2016-08-07 12:39:58 +00:00
|
|
|
(upper_part, lower_part) = im.split(1)
|
|
|
|
upper_part = EscposImage(upper_part)
|
|
|
|
lower_part = EscposImage(lower_part)
|
2021-10-30 16:15:22 +00:00
|
|
|
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"
|
2016-08-07 12:39:58 +00:00
|
|
|
|
|
|
|
|
2021-10-30 16:15:22 +00:00
|
|
|
def _load_and_check_img(
|
|
|
|
filename,
|
|
|
|
width_expected,
|
|
|
|
height_expected,
|
|
|
|
raster_format_expected,
|
|
|
|
column_format_expected,
|
|
|
|
):
|
2016-04-03 07:36:54 +00:00
|
|
|
"""
|
|
|
|
Load an image, and test whether raster & column formatted output, sizes, etc match expectations.
|
|
|
|
"""
|
2021-10-30 16:15:22 +00:00
|
|
|
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
|
2016-04-03 07:36:54 +00:00
|
|
|
for row in im.to_column_format(False):
|
2021-10-30 16:15:22 +00:00
|
|
|
assert row == column_format_expected[i]
|
2016-06-19 09:51:52 +00:00
|
|
|
i += 1
|