mirror of
https://github.com/python-pillow/Pillow.git
synced 2025-07-11 08:42:35 +03:00
58 lines
1.4 KiB
Python
58 lines
1.4 KiB
Python
from __future__ import annotations
|
|
|
|
from pathlib import Path
|
|
|
|
import pytest
|
|
|
|
from PIL import Image, QoiImagePlugin
|
|
|
|
from .helper import assert_image_equal_tofile, hopper
|
|
|
|
|
|
def test_sanity() -> None:
|
|
with Image.open("Tests/images/hopper.qoi") as im:
|
|
assert im.mode == "RGB"
|
|
assert im.size == (128, 128)
|
|
assert im.format == "QOI"
|
|
|
|
assert_image_equal_tofile(im, "Tests/images/hopper.png")
|
|
|
|
with Image.open("Tests/images/pil123rgba.qoi") as im:
|
|
assert im.mode == "RGBA"
|
|
assert im.size == (162, 150)
|
|
assert im.format == "QOI"
|
|
|
|
assert_image_equal_tofile(im, "Tests/images/pil123rgba.png")
|
|
|
|
|
|
def test_invalid_file() -> None:
|
|
invalid_file = "Tests/images/flower.jpg"
|
|
|
|
with pytest.raises(SyntaxError):
|
|
QoiImagePlugin.QoiImageFile(invalid_file)
|
|
|
|
|
|
def test_op_index() -> None:
|
|
# QOI_OP_INDEX as the first chunk
|
|
with Image.open("Tests/images/op_index.qoi") as im:
|
|
assert im.getpixel((0, 0)) == (0, 0, 0, 0)
|
|
|
|
|
|
def test_save(tmp_path: Path) -> None:
|
|
f = tmp_path / "temp.qoi"
|
|
|
|
im = hopper()
|
|
im.save(f, colorspace="sRGB")
|
|
|
|
assert_image_equal_tofile(im, f)
|
|
|
|
for path in ("Tests/images/default_font.png", "Tests/images/pil123rgba.png"):
|
|
with Image.open(path) as im:
|
|
im.save(f)
|
|
|
|
assert_image_equal_tofile(im, f)
|
|
|
|
im = hopper("P")
|
|
with pytest.raises(ValueError, match="Unsupported QOI image mode"):
|
|
im.save(f)
|