Image-Optimizer-Pro / image_optimization_utils.py
Alibrown's picture
Create image_optimization_utils.py
a3a633e verified
raw
history blame
1.28 kB
from PIL import Image
import io
def compress_image(image, quality=85):
"""
Komprimiert ein Bild mit angegebener Qualität
:param image: PIL Image Objekt
:param quality: Kompressionsqualität (1-100)
:return: Komprimiertes PIL Image
"""
img_byte_arr = io.BytesIO()
image.save(img_byte_arr, format='JPEG', quality=quality)
img_byte_arr.seek(0)
return Image.open(img_byte_arr)
def convert_image_format(image, target_format='webp', quality=85):
"""
Konvertiert Bild in Zielformat
:param image: PIL Image Objekt
:param target_format: Zielformat (jpg, png, webp)
:param quality: Kompressionsqualität
:return: Konvertiertes PIL Image
"""
img_byte_arr = io.BytesIO()
image.save(img_byte_arr, format=target_format.upper(), quality=quality)
img_byte_arr.seek(0)
return Image.open(img_byte_arr)
def resize_image(image, max_width=None, max_height=None):
"""
Ändert Bildgröße unter Beibehaltung des Seitenverhältnisses
:param image: PIL Image Objekt
:param max_width: Maximale Breite
:param max_height: Maximale Höhe
:return: Größenverändertes PIL Image
"""
if max_width and max_height:
image.thumbnail((max_width, max_height))
return image