Skip to content

Commit

Permalink
Write JFIF header when saving JPEG
Browse files Browse the repository at this point in the history
  • Loading branch information
radarhere committed May 24, 2020
1 parent 7fb21bc commit 660894c
Show file tree
Hide file tree
Showing 2 changed files with 12 additions and 9 deletions.
20 changes: 11 additions & 9 deletions Tests/test_file_jpeg.py
Original file line number Diff line number Diff line change
Expand Up @@ -91,15 +91,17 @@ def test_cmyk(self):
assert k > 0.9

def test_dpi(self):
def test(xdpi, ydpi=None):
with Image.open(TEST_FILE) as im:
im = self.roundtrip(im, dpi=(xdpi, ydpi or xdpi))
return im.info.get("dpi")

assert test(72) == (72, 72)
assert test(300) == (300, 300)
assert test(100, 200) == (100, 200)
assert test(0) is None # square pixels
for test_image_path in [TEST_FILE, "Tests/images/pil_sample_cmyk.jpg"]:

def test(xdpi, ydpi=None):
with Image.open(test_image_path) as im:
im = self.roundtrip(im, dpi=(xdpi, ydpi or xdpi))
return im.info.get("dpi")

assert test(72) == (72, 72)
assert test(300) == (300, 300)
assert test(100, 200) == (100, 200)
assert test(0) is None # square pixels

def test_icc(self, tmp_path):
# Test ICC support
Expand Down
1 change: 1 addition & 0 deletions src/libImaging/JpegEncode.c
Original file line number Diff line number Diff line change
Expand Up @@ -222,6 +222,7 @@ ImagingJpegEncode(Imaging im, ImagingCodecState state, UINT8* buf, int bytes)
context->cinfo.smoothing_factor = context->smooth;
context->cinfo.optimize_coding = (boolean) context->optimize;
if (context->xdpi > 0 && context->ydpi > 0) {
context->cinfo.write_JFIF_header = TRUE;
context->cinfo.density_unit = 1; /* dots per inch */
context->cinfo.X_density = context->xdpi;
context->cinfo.Y_density = context->ydpi;
Expand Down

0 comments on commit 660894c

Please sign in to comment.