Comment effectuer la compression JPEG en Python sans écriture/lecture de
J'aimerais travailler directement avec compressé JPEG images. Je sais qu'avec PIL/Oreiller je peux compresser une image quand je l'enregistre, et puis lisez la compression de l'image - par exemple
from PIL import Image
im1 = Image.open(IMAGE_FILE)
IMAGE_10 = os.path.join('./images/dog10.jpeg')
im1.save(IMAGE_10,"JPEG", quality=10)
im10 = Image.open(IMAGE_10)
mais, je voudrais un moyen de le faire sans le superflu d'écrire et de lire. Est-il un paquet Python avec une fonction qui va prendre une image et de qualité en tant qu'entrées et retourner une version jpeg de l'image avec la qualité?
OriginalL'auteur user1245262 | 2015-06-11
Vous devez vous connecter pour publier un commentaire.
Dans le fichier de la mémoire-comme d'autres choses, vous pouvez utiliser
StringIO
.Prendre un coup d'oeil:
Si vous cochez la
photo-quality10.jpg
fichier, il doit être de la même image, mais avec 10% de la qualité de la compression JPEG réglage.buffer = StringIO.String()
àbuffer = StringIO()
et importésfrom io import StringIO
, mais quand j'essaie de faireim1.save()
il se bloque avecTypeError: string argument expected, got 'bytes'
Je pense qu'il est censé être:
buffer=StringIO.StringIO()
corrigé, merci pour le commentaire
OriginalL'auteur sgammon
À L'Aide De BytesIO
StringIO est manquant dans Python3.0, ref : StringIO en python3
OriginalL'auteur Super Engine