Re: tamaño de registro en Base de datos

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

In response to

Browse pgsql-es-ayuda by date

  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