Message posté par : StéN (stephanie.niogret(a)megeve.fr)
----------------------------------------
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é
----------------------------------------
Le message est situé
https://georezo.net/forum/viewtopic.php?pid=359912#p359912
Pour y répondre : geobd(a)ml.georezo.net ou reply de votre messagerie
Pour vous désabonner connectez-vous sur le forum puis Profil / Abonnement
--
Association GeoRezo - le portail géomatique
https://georezo.net