#1 Fri 21 April 2023 15:00
- StéN
- Juste Inscrit !
- Date d'inscription: 27 Nov 2019
- Messages: 1
[Postgres] Redimensionner une image avant intégration
Bonjour,
Je tente de gĂ©nĂ©rer une fonction puis le trigger qui fait appel Ă la fonction pour redimensionner une image avant l'intĂ©gration dans table postgres (version 11 pour le moment, trĂšs prochainement en V13). Le but est de gĂ©rer tout au mĂȘme endroit. Ces photos sont associĂ©es Ă des objets gĂ©ographiques, et intĂ©grĂ©es en base Ă partir d'un formulaire d'une application SIG
En cherchant sur le net, il est souvent indiqué d'utiliser l'extention python pour parvenir à mes fins.. mais je suis bloqué. Si certains ont des idées, je suis preneur...
Voici ce que j'ai tenté, sans succÚs pour le moment :
CREATE OR REPLACE FUNCTION resize_image(image bytea)
RETURNS bytea AS $$
from PIL import Image
import io
max_size = 900
im = Image.open(io.BytesIO(image))
width, height = im.size
if width > height:
new_width = min(max_size, width)
new_height = int(new_width * height / width)
else:
new_height = min(max_size, height)
new_width = int(new_height * width / height)
im = im.resize((new_width, new_height))
output = io.BytesIO()
im.save(output, format='JPEG')
return output.getvalue()
$$ LANGUAGE plpython3u;
CREATE TRIGGER resize_media
BEFORE INSERT ON media_cameras
FOR EACH ROW
EXECUTE FUNCTION medias.resize_media(NEW.media, 900);
Ce n'est peut-ĂȘtre pas la bonne mĂ©thode, si vous en avez une autre qui fonctionne, je prends.
Je vous remercie par avance de votre aide.
Sté
Hors ligne

