Skip to content

Instantly share code, notes, and snippets.

@dario61081
Created May 3, 2017 21:16
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save dario61081/7c03d570fc964d345050abef84b0d4df to your computer and use it in GitHub Desktop.
Save dario61081/7c03d570fc964d345050abef84b0d4df to your computer and use it in GitHub Desktop.
generar thumbs de una imagen y registrarlos contra la BBDD
import os
import shutil
import cx_Oracle
from PIL import Image
tns = cx_Oracle.makedsn("192.168.0.254",1521,'prod')
db = cx_Oracle.connect("drgg","melica", tns)
def insertarFoto(archivo, codigo):
c = db.cursor()
sql = "INSERT INTO FARMA.IMAGENES (IMAG_CODIGO,PROD_CODIGO,TIIM_CODIGO,IMAG_OBJETO, empr_codigo) VALUES (farma.pk_gral.FL_SGTE_CODE_CONTROL('SQ_IMAG_CODIGO'),:cod_prod ,5,:blob, 1) RETURNING IMAG_CODIGO into :cod_img"
#cargar la imagen
file = open(archivo, 'rb')
contenido = file.read()
#cargar y ejecutar
cod_img = c.var(cx_Oracle.NATIVE_INT)
c.setinputsizes(cod_prod=cx_Oracle.CLOB, blob=cx_Oracle.BLOB, cod_img=cx_Oracle.CLOB)
c.execute(sql, cod_prod=codigo, blob=contenido, cod_img=cod_img)
p = cod_img.getvalue()
c.execute('commit')
file.close()
print archivo, codigo, 'Enviado'
return p
#directorios
base = os.path.dirname(__file__) + '/photos/'
destino = os.path.dirname(__file__) + '/photos/verificados/'
dimens = '/home/dario/Escritorio/wsImg/'
#verificar ruta destino
if not os.path.exists(destino):
os.makedirs(destino)
#cycle
c = 0
with open('lista_productos_activos.csv', 'rb') as f:
for item in f.readlines():
datos = item.decode('utf8').replace("\"","").split(";")
print datos
archivo = datos[0]
if len(datos)>2:
codigo = int(datos[1])
else:
codigo = None
print '>>>',datos
#buscar si existe un archivo con esta descripcion
obj = base + archivo + '.json'
if os.path.exists(obj):
print "encontrado ", obj, codigo
c+=1
try:
shutil.copy(base + archivo + '.json', destino + archivo + '.json' )
shutil.copy(base + archivo + '.jpg.jpg', destino + archivo + '.jpg.jpg')
#enviar a DDBB
if codigo:
p = insertarFoto(destino + archivo + '.jpg.jpg', codigo)
#split de imagenes
arch_dim = dimens + str(p)
img = Image.open(destino + archivo + '.jpg.jpg')
img.thumbnail((900,900), Image.ANTIALIAS)
img.save((arch_dim + '_900x900.jpg'), "JPEG")
img.thumbnail((217,217), Image.ANTIALIAS)
img.save((arch_dim + '_217x217.jpg'), "JPEG")
img.thumbnail((245, 245), Image.ANTIALIAS)
img.save((arch_dim + '_245x245.jpg'), "JPEG")
img.thumbnail((69, 69), Image.ANTIALIAS)
img.save((arch_dim + '_69x69.jpg'), "JPEG")
except Exception as e:
print e.message
pass
print "encontrado(s) {} coincidencia(s)".format(c)
#desconectar la base
db.close()
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment