Files

21 lines
881 B
Python

"""Emit real Python-encoded packets for JavaScript interoperability tests."""
import base64
import json
from pathlib import Path
import sys
import numpy as np
sys.path.insert(0, str(Path(__file__).resolve().parents[1]))
from preview_core import HEADER, encode_image
fixtures = []
for shape in [(9, 13, 3), (17, 11, 4), (7, 5)]:
pixels = np.random.default_rng(7).integers(0, 256, shape, dtype=np.uint8)
thumbnail, original, _ = encode_image(pixels)
for kind, packet in [("thumbnail", thumbnail), ("original", original)]:
fields = HEADER.unpack_from(packet)
plain = np.bitwise_xor(np.frombuffer(packet, np.uint8, offset=HEADER.size), fields[3]).tobytes()
fixtures.append({"kind": kind, "packet": base64.b64encode(packet).decode(), "plain": base64.b64encode(plain).decode(), "width": fields[5], "height": fields[6]})
print(json.dumps(fixtures))