Carlos Ribeiro
Carlos Ribeiro

Reputation: 183

python PIL save image different size original

I´m working on a project with PIL in python. Simply by opening and saving an image makes the output image bigger (in Bytes) than the original, maintaining the same resolution, and i don´t know why...

from PIL import Image
img = Image.open("photo.png")
img.save("photo2.png", "PNG")

result from code above

Does any one have any idea why this happens? i need them to be exactly the same.

Upvotes: 1

Views: 8014

Answers (2)

Mace
Mace

Reputation: 1410

I guess you don't change the image, otherwise the size would be different. If you don't change the image why don't you just copy it?

shutil.copyfile(source, destination)  

Upvotes: 1

Roland Smith
Roland Smith

Reputation: 43495

PNG is a compressed lossless format. The original image was probably saved with different compression settings.

Looking at the documentation you could try:

img.save("photo2.png", "PNG", optimize=True)

or

img.save("photo2.png", "PNG", compress_level=9)

By default, compress_level=6 is used.

Note that the optimize option includes setting the compression level to 9. But it also tries to find optimal encoder settings.

Upvotes: 2

Related Questions