On 10/21/2016 10:24 AM, Emanuel Calvo wrote: > > > Hey Nahum, > > you may want to do that update in batches using id ranges. Also, should > avoid the > single transaction method if you have replicas. > > BTW, don't know why we are speaking in english, as this is an _español_ > mailing list. Just heads up. :)
Probably because this started on the psycopg list and was Cc'ed to pgsql-es-ayuda: https://www.postgresql.org/message-id/CABqArLimjV5Binh33sw2C8EV%3Dp_fJstrAj-OCR0%2BGT_MX-JhhA%40mail.gmail.com > > Regards, > > On Thu, Oct 20, 2016 at 10:27 PM Nahum Castro <nahumcas...@gmail.com > <mailto:nahumcas...@gmail.com>> wrote: > > At last here is the solution to resize images on bytea columns with > plpythonu > Thanks to all especially to Adrian > > 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) > salida = io.BytesIO > img.save(salida, format='JPEG') > hex_data = output.getvalue() > img.close() > return hex_data > $function$ > > And here is how to resize all images from database: > > update personal set foto=ajustar(foto) where foto is not null; > > 2016-10-20 19:48 GMT-05:00 Nahum Castro <nahumcas...@gmail.com > <mailto:nahumcas...@gmail.com>>: > > As far as I know the process to resize the image is: > > read(bytea) -> load_to_memory(image) -> resize(image) -> > recode_to_bytea(image) -> store(bytea) > > You helped me with the first two. > > When I run the function ajustar(image) > update personal set image=ajustar(image) > > I tried to do a direct resizing from bytea but python can't > understand the hexadecimal data from bytea as an jpeg image. > Though I tried with with plpython2u. > Thanks > > 2016-10-20 19:00 GMT-05:00 Adrian Klaver > <adrian.kla...@aklaver.com <mailto:adrian.kla...@aklaver.com>>: > > On 10/20/2016 04:51 PM, Nahum Castro wrote: > > Hello Adrian. > > The result image to replace the big one. > > > So if you are replacing the data in a bytea column with a > function that returns bytea, why encode it? > > Unless I am missing something why not just UPDATE with the > raw(bytea) return value? > > > I have a table with images @ 12K but, went on vacation > an when returned > someone replaced the pictures with high resolution > images @6M. The app > then become very slow and halted. > > I have already made the script in python to resize all > the images from a > folder before to upload to the database, so it occurred > to me do the > same but on the database. > > Thanks again. > > 2016-10-20 18:32 GMT-05:00 Adrian Klaver > <adrian.kla...@aklaver.com > <mailto:adrian.kla...@aklaver.com> > <mailto:adrian.kla...@aklaver.com > <mailto:adrian.kla...@aklaver.com>>>: > > On 10/20/2016 02:42 PM, Nahum Castro wrote: > > Hello, > > The script always returns. > select encode(ajustar(foto), 'escape') from > personal where id=193; > encode > > > ----------------------------------------------------------------- > <PIL.Image.Image image mode=RGB size=300x347 at > 0x7F08A11B1650> > > > > So what do you want it to return a where do you want > to return? > > > -- > Adrian Klaver > adrian.kla...@aklaver.com > <mailto:adrian.kla...@aklaver.com> > <mailto:adrian.kla...@aklaver.com > <mailto:adrian.kla...@aklaver.com>> > > > > > -- > *Nahum Castro González* > Blvd. Perdigón 214, Brisas del Lago. > CP 37207 > León, Guanajuato, México > Tel (477)1950304 > Cel (477)1274694 > > > > -- > Adrian Klaver > adrian.kla...@aklaver.com <mailto:adrian.kla...@aklaver.com> > > > > > -- > *Nahum Castro González* > Blvd. Perdigón 214, Brisas del Lago. > CP 37207 > León, Guanajuato, México > Tel (477)1950304 > Cel (477)1274694 > > > > > -- > *Nahum Castro González* > Blvd. Perdigón 214, Brisas del Lago. > CP 37207 > León, Guanajuato, México > Tel (477)1950304 > Cel (477)1274694 > -- Adrian Klaver adrian.kla...@aklaver.com - Enviado a la lista de correo pgsql-es-ayuda (pgsql-es-ayuda@postgresql.org) Para cambiar tu suscripci�n: http://www.postgresql.org/mailpref/pgsql-es-ayuda