예제 #1
0
def test_jpeg_exif_preserve(jpg_exif_image, tmp_path):
    # in filesystem
    dst = tmp_path / "out.jpg"
    optimize_jpeg(src=jpg_exif_image, dst=dst)
    assert piexif.load(
        str(dst))["Exif"] and (piexif.load(str(dst))["Exif"] == piexif.load(
            str(jpg_exif_image.resolve()))["Exif"])

    # in memory
    with open(jpg_exif_image, "rb") as fl:
        src_bytes = fl.read()
    optimized_img = optimize_jpeg(src=io.BytesIO(src_bytes))
    assert piexif.load(optimized_img.getvalue())["Exif"] and (
        piexif.load(src_bytes)["Exif"] == piexif.load(
            optimized_img.getvalue())["Exif"])
예제 #2
0
def test_wrong_extension_optim(tmp_path, png_image):
    dst = tmp_path.joinpath("image.jpg")
    shutil.copy(png_image, dst)
    with pytest.raises(Exception):
        optimize_jpeg(dst, dst)
예제 #3
0
def test_dynamic_jpeg_quality(jpg_image, tmp_path):
    # check optimization without fast mode
    dst = tmp_path / "out.jpg"
    optimize_jpeg(src=jpg_image, dst=dst, fast_mode=False)
    assert os.path.getsize(dst) < os.path.getsize(jpg_image)