バイトとして保存されたデータベースから処理された画像にアクセスする際に問題があります。ここでは、画像のサイズを変更するための私の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)
前もって感謝します