From: | Nahum Castro <nahumcastro(at)gmail(dot)com> |
---|---|
To: | "jvenegasperu (dot)" <jvenegasperu(at)gmail(dot)com> |
Cc: | Ayuda <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Re: tamaño de registro en Base de datos |
Date: | 2017-09-04 20:00:45 |
Message-ID: | CABqArLi67DegFhTHkwK12bzttdvBTG0zJALs28cqU=zbv1D-Sw@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Aqui una función en plpython para reducir las imágenes, quedan de aprox 15k
basewidth es el tamaño que quieres de ancho y lo puedes modificar.
Yo lo tengo en un trigger a la hora de insertar ajusto automaticamente el
tamaño. Sólo la he probado en Linux y Windows, Postgresql 9.6.5 y Python
Python 2.7.5 y CentOS 7. Es importante actualizar la libreria pillow de
pyhon a la más reciente o fallará.
CREATE OR REPLACE FUNCTION public.ajustar(randstring bytea)
RETURNS bytea AS
$BODY$
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 = BytesIO()
img.save(salida, format='JPEG')
hex_data = salida.getvalue()
img.close()
return hex_data
$BODY$
LANGUAGE plpythonu VOLATILE
COST 100;
--ALTER FUNCTION public.ajustar(bytea)
--OWNER TO nahum;
Saludos.
Nahum
El 4 de septiembre de 2017, 11:36, jvenegasperu .<jvenegasperu(at)gmail(dot)com>
escribió:
> Hola todos buen dia
>
> Tengo una base de datos donde los usuarios ingresan fotografias con
> smartphones y en algunos casos las fotos pesan 4 o 5 Megas pero en realidad
> es suficiente con la misma foto pero mas pequeña. digamos de unos 400 KB. y
> no es funcional pedirles a los usuarios que usen una configuracion mas baja
> y no tengo acceso a la aplicacion de donde se recibe la información, asi
> que en este caso lo que hago es barrer periodicamente la base de datos
> extrayendo la foto de la base de datos redimensionandola y volviendo a
> guardar la imagen actualizando el campo en la BD hasta ahi todo bien.
>
> Pero hace unos dias la actividad programada dejo de funcionar por un tema
> de permisos que ya se han restablecido pero me nace la pregunta como puedo
> saber en postgres cuanto pesa un registro o un campo de la base de datos.
> asi podria verificar en que numero de registro se queda la actualización
> del campo imagen y continuar a partir de ahi.
>
> Es posible efectuar algo como select numero_registro from tabla where
> campo_imagen > tamanio_imagen? con alguna función o alguna idea de como se
> podria hacer esto? el campo_imagen es un campo de tipo blob.
>
> saludos y gracias por las soluciones o comentarios que puedan brindarme
>
> Atte
>
> --
> José Mercedes Venegas Acevedo
> cel Mov RPC 964185205
>
> Member of the PHP Documentation Group (Spanish)
>
--
*Nahum Castro González*
Blvd. Perdigón 214, Brisas del Lago.
CP 37207
León, Guanajuato, México
Tel (477)1950304
Cel (477)1274694
From | Date | Subject | |
---|---|---|---|
Next Message | Hellmuth Vargas | 2017-09-05 02:23:53 | Re: comportamiento transaccional WITH |
Previous Message | Stephen Amell | 2017-09-04 17:12:04 | Re: tamaño de registro en Base de datos |