43 lines
No EOL
1.2 KiB
Python
43 lines
No EOL
1.2 KiB
Python
# Copyright (c) 2015, Frappe Technologies Pvt. Ltd. and Contributors
|
|
# MIT License. See license.txt
|
|
|
|
from __future__ import unicode_literals, print_function
|
|
import os
|
|
|
|
def resize_images(path, maxdim=700):
|
|
from PIL import Image
|
|
size = (maxdim, maxdim)
|
|
for basepath, folders, files in os.walk(path):
|
|
for fname in files:
|
|
extn = fname.rsplit(".", 1)[1]
|
|
if extn in ("jpg", "jpeg", "png", "gif"):
|
|
im = Image.open(os.path.join(basepath, fname))
|
|
if im.size[0] > size[0] or im.size[1] > size[1]:
|
|
im.thumbnail(size, Image.ANTIALIAS)
|
|
im.save(os.path.join(basepath, fname))
|
|
|
|
print("resized {0}".format(os.path.join(basepath, fname)))
|
|
|
|
def strip_exif_data(content, content_type):
|
|
""" Strips EXIF from image files which support it.
|
|
|
|
Works by creating a new Image object which ignores exif by
|
|
default and then extracts the binary data back into content.
|
|
|
|
Returns:
|
|
Bytes: Stripped image content
|
|
"""
|
|
|
|
from PIL import Image
|
|
import io
|
|
|
|
original_image = Image.open(io.BytesIO(content))
|
|
output = io.BytesIO()
|
|
|
|
new_image = Image.new(original_image.mode, original_image.size)
|
|
new_image.putdata(list(original_image.getdata()))
|
|
new_image.save(output, format=content_type.split('/')[1])
|
|
|
|
content = output.getvalue()
|
|
|
|
return content |