python: export toif as public module

pull/1223/head
matejcik 4 years ago
parent 43b7ccefc7
commit 032a65e1cf

@ -6,7 +6,7 @@ import sys
import click
from PIL import Image
from trezorlib._internal import toif
from trezorlib import toif
HERE = Path(__file__).parent.resolve()
ROOT = HERE.parent.parent

@ -3,7 +3,7 @@
import click
from PIL import Image
from trezorlib._internal import toif
from trezorlib import toif
@click.command()

@ -3,9 +3,13 @@ import zlib
from typing import Sequence, Tuple
import attr
from PIL import Image
from .. import firmware
try:
from PIL import Image
except ImportError:
Image = None
from . import firmware
RGBPixel = Tuple[int, int, int]
@ -69,7 +73,10 @@ class Toif:
else:
return width * height * 2
def to_image(self) -> Image:
def to_image(self) -> "Image":
if Image is None:
raise RuntimeError("PIL is not available. Please install via 'pip install Pillow'")
uncompressed = _decompress(self.data)
expected_size = self._expected_data_length()
if len(uncompressed) != expected_size:
@ -109,7 +116,10 @@ def load(filename: str) -> Toif:
return from_bytes(f.read())
def from_image(image: Image, background=(0, 0, 0, 255)) -> Toif:
def from_image(image: "Image", background=(0, 0, 0, 255)) -> Toif:
if Image is None:
raise RuntimeError("PIL is not available. Please install via 'pip install Pillow'")
if image.mode == "RGBA":
background = Image.new("RGBA", image.size, background)
blend = Image.alpha_composite(background, image)
Loading…
Cancel
Save