banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oubliĂ© ?

#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

 

Pied de page des forums

Copyright Association GeoRezo