# Locate the end of the SOI marker (first two bytes) if data[:2] != b'\xFF\xD8': raise ValueError('Not a valid JPEG (missing SOI)')
# Build an APP2 marker: 0xFFE2 + length (2 bytes) + payload # Length includes the two length bytes themselves. length = len(payload_bytes) + 2 app2_marker = b'\xFF\xE2' + struct.pack('>H', length) + payload_bytes
# Trim everything after the End‑of‑Image marker exiftool -b -FileData lovely_alazai.jpg | \ awk '/\xFF\xD9/ print; exit' > cleaned.jpg Alternatively, re‑encode the image (which automatically discards stray bytes):