1
0
mirror of https://github.com/trezor/trezor-firmware.git synced 2024-12-22 14:28:07 +00:00

refactor(core/tools): add argument to jpg_to_h.py, move it to tools

[no changelog]
This commit is contained in:
tychovrahe 2023-06-26 14:14:47 +02:00 committed by TychoVrahe
parent ebbd7f9d35
commit 6dbeba9730
2 changed files with 47 additions and 34 deletions

View File

@ -1,34 +0,0 @@
"""
Creates a header file containing image data.
"""
background_image = "background_R.jpg"
h_file_name = "background_R.h"
h_file_template = """\
// clang-format off
unsigned char background_R_jpg[] = {content};
unsigned int background_R_jpg_len = {length};
"""
with open(background_image, "rb") as f:
image_data = f.read()
column_count = 12
content = "{{\n{image_bytes}\n}}"
image_bytes = " " # begin with indent
for index, byte in enumerate(image_data, start=1):
image_bytes += f"0x{byte:02x},"
# If at the end of line, include a newline with indent, otherwise just space
if index % column_count == 0:
image_bytes += "\n "
else:
image_bytes += " "
# Get rid of trailing coma
image_bytes = image_bytes.rstrip(", \n")
with open(h_file_name, "w") as f:
f.write(h_file_template.format(content=content.format(image_bytes=image_bytes), length=len(image_data)))

47
core/tools/jpg_to_h.py Normal file
View File

@ -0,0 +1,47 @@
"""
Creates a header file containing image data.
"""
import click
import pathlib
h_file_template = """\
// clang-format off
unsigned char {name}_jpg[] = {content};
unsigned int {name}_jpg_len = {length};
"""
@click.command()
@click.argument("infile", type=click.File("rb"))
def convert(infile):
path = pathlib.Path(infile.name)
img_name = path.stem
h_file_name = path.with_suffix(".h")
image_data = infile.read()
column_count = 12
content = "{{\n{image_bytes}\n}}"
image_bytes = " " # begin with indent
for index, byte in enumerate(image_data, start=1):
image_bytes += f"0x{byte:02x},"
# If at the end of line, include a newline with indent, otherwise just space
if index % column_count == 0:
image_bytes += "\n "
else:
image_bytes += " "
# Get rid of trailing coma
image_bytes = image_bytes.rstrip(", \n")
with open(h_file_name, "w") as f:
f.write(h_file_template.format(name=img_name, content=content.format(image_bytes=image_bytes), length=len(image_data)))
if __name__ == "__main__":
convert()