1

バイトとして保存されたデータベースから処理された画像にアクセスする際に問題があります。ここでは、画像のサイズを変更するための私のplです。

CREATE OR REPLACE FUNCTION public.ajustar(randstring bytea)
 RETURNS bytea
 LANGUAGE plpythonu
AS $function$
    from io import BytesIO
    import PIL
    from PIL import Image
    basewidth = 300
    mem_file = BytesIO()
    mem_file.write(randstring)
    img = Image.open(mem_file)
    wpercent = (basewidth/float(img.size[0]))
    hsize = int((float(img.size[1])*float(wpercent)))
    img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
    img.close()
    return img
$function$;

だから私の問題は、バイトを返しますが、アドレスを取得することです.アドレスではなく画像を取得するにはどうすればよいですか?. それが機能する唯一の方法は、img を でファイルに保存することですimg.save('/home/postgres/imagen.jpg')。代わりに、データベース内の画像を置き換えるオブジェクトを配置する必要があります。

pruebas=# select encode(ajustar(foto), 'escape') from personal where id=193;
                           encode                           
------------------------------------------------------------
 <PIL.Image.Image image mode=RGB size=300x347 at 0x1895990>
(1 fila)

前もって感謝します

4

1 に答える 1