Annonce
Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !
10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …
Retrouver nos membres bienfaiteurs
#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