Re: OT? plpython2u

From: Jonathan Rogers <jrogers(at)emphasys-software(dot)com>
To: <psycopg(at)postgresql(dot)org>
Subject: Re: OT? plpython2u
Date: 2016-10-20 18:03:21
Message-ID: e72d464d-7f3a-6f84-7612-59ab4ccecd51@emphasys-software.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda psycopg

On 10/20/2016 01:14 PM, Nahum Castro wrote:
> Hello all.
>
> I need to process images on my database, they are stored on a bytea column.
>
> The process consist on scaling and I have done this so far:
>
> CREATE OR REPLACE FUNCTION ajustar(randstring bytea)
> RETURNS bytea AS
> $$
> import PIL
> from PIL import Image
> basewidth = 300
> img = randstring
> wpercent = (basewidth/float(img.size[0]))
> hsize = int((float(img.size[1])*float(wpercent)))
> img = img.resize((basewidth,hsize), PIL.Image.ANTIALIAS)
>
> return img
> $$
> LANGUAGE 'plpython2u' VOLATILE;

As you probably know, Postgres procedural languages are server-side
extensions and therefore have nothing to do with psycopg, which is a
client-side library.

>
> The objective of this pl is read the bytea from the database, scale,
> then replace the scaled image in the database, but I don't know what
> type use to pass to the variable img.

AFAICT, if you pass a bytea value to a plpythonu function, it will
receive a Python str object.

>
> This is the query.
> update personal set foto=ajustar(encode(foto, 'hex')::bytea);

Why are you encoding the binary data into a textual representation? What
image format is stored in column "foto"? Depending on the format, you
probably want to use one of these constructors in function "ajustar":

http://pillow.readthedocs.io/en/3.4.x/reference/Image.html?highlight=Image#PIL.Image.fromstring

http://pillow.readthedocs.io/en/3.4.x/reference/Image.html?highlight=Image#PIL.Image.open

--
Jonathan Rogers
Socialserve.com by Emphasys Software
jrogers(at)emphasys-software(dot)com

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Jonathan Rogers 2016-10-20 18:06:01 Re: OT? plpython2u
Previous Message Alvaro Herrera 2016-10-20 17:47:41 Re: Consulta recursiva

Browse psycopg by date

  From Date Subject
Next Message Jonathan Rogers 2016-10-20 18:06:01 Re: OT? plpython2u
Previous Message Nahum Castro 2016-10-20 17:14:44 OT? plpython2u