Quickstart — Python
pip install dusimagezRequires Python 3.10+.
Compress
Section titled “Compress”from dusimagez import compress_image, CompressOptions
data = open("input.jpg", "rb").read()out = compress_image(data, CompressOptions(quality=80))open("output.jpg", "wb").write(out)CompressOptions is also available as a Pydantic v2 model for validation
(from dusimagez import CompressOptionsModel) — the import is optional;
the plain dataclass-style options work without Pydantic installed.
Compress to a target size
Section titled “Compress to a target size”from dusimagez import compress_to_size, CompressOptions
# 200 KB or less, or a DusimagezError with code TARGET_SIZE_UNREACHABLE.out = compress_to_size(data, 200_000, CompressOptions())Report and info
Section titled “Report and info”from dusimagez import compress_with_report, get_image_info, CompressOptions
info = get_image_info(data)print(info.format, info.width, info.height)
report = compress_with_report(data, CompressOptions(preset="Web"))print(f"{report.original_size} -> {report.output_size} bytes, " f"saved {report.saved_percent:.1f}%, quality {report.quality_used}")from dusimagez import bulk_compress, CompressOptions
results = bulk_compress([data1, data2, b""], CompressOptions())for r in results: if r.ok: print("saved", r.report.saved_bytes, "bytes") else: print(r.error.code, r.error.message_en) # per-item errorErrors
Section titled “Errors”Failures raise DusimagezError with .code, .message_en and
.message_hi — see Error codes for all 9 codes.
Full option list: Options reference.