In Willow there are separate save operations for each image format:
All three take one positional argument, the file-like object to write the image data to.
For example, to save an image as a PNG file:
with open('out.png', 'wb') as f: i.save_as_png(f)
Changing the quality setting¶
save_as_webp() takes a
keyword argument, which is a number between 1 and 100. It defaults to 85
save_as_jpeg() and 80 for
Decreasing this number will decrease the output file size at the cost
of losing image quality.
For example, to save an image with low quality:
with open('low_quality.jpg', 'wb') as f: i.save_as_jpeg(f, quality=40)
By default, JPEG’s are saved in the same format as their source file but you
can force Willow to always save a “progressive” JPEG file by setting the
progressive keyword argument to
with open('progressive.jpg', 'wb') as f: i.save_as_jpeg(f, progressive=True)
You can encode the image to WebP without any loss by setting the
lossless keyword argument to
with open('lossless.webp', 'wb') as f: i.save_as_webp(f, lossless=True)
save_as_png() both take an
optimize keyword that when set to true, will output an optimized image.
with open('optimized.jpg', 'wb') as f: i.save_as_jpeg(f, optimize=True)
This feature is currently only supported in the Pillow backend, if you use Wand this argument will be ignored.