Re: [Python-es] Recorte circular de una imagen

2011-09-02 Por tema Kiko
El 30 de agosto de 2011 22:31, José Gómez Castaño jgca...@gmail.comescribió:

 Gracias,pero lo he probado y nada, sigue igual. Creo que voy a probar con
 openCV, que también uso para el análisis de la imagen

 Un saludo


Hola, con matplotlib [1] puedes definir zonas transparentes u opacas usando
set_alpha y guardarlas como png.

[1] http://matplotlib.sourceforge.net/
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Crop + Thumbnail

2011-09-02 Por tema Guillermo Moguel
Hola Hubermann, efectivamente, para poder saber donde se encuentra tu
imagen necesitaras consultarlo de tu modelo, en mi caso realizo una
operación como la que tu requieres, el cambio es que yo no modifico la
imagen original y únicamente modifico la imagen que me están
consultando y regreso la nueva imagen. Esto me ha funcionado
correctamente por que el flujo de la aplicación no en tan grande así
que me va bien.

Otro dato es que como la imagen no es accesible desde url (esto fue
pensado así), las fotos en este caso son tratadas y regresadas para
incrustar en un img de mi template.
img src=data:image/jpg;base64,{{ photo }} alt=Base64 encoded image /


Y con poco de miedo de faltar a la culturilla pythónica.

def foto64(fichero, mini=False):
try :
  import base64
  archivo = StringIO()
  imagen = Image.open(fichero, r) #el fichero seria la ruta de
tu consulta del modelo
  x,y = imagen.size
  rel = round(Decimal(x)/Decimal(y), 2)

  if rel = 1.33:
recorte = [((x/2)-(y*5/12)),0,((x/2)+(y*5/12)),y]
imagen = imagen.crop(recorte)

 if mini: #Esto lo uso para aun auto completado en un texbox, que
regresa la foto con nombres
imagen.thumbnail((30, 34), Image.ANTIALIAS)
 else:
imagen.thumbnail((294, 391), Image.ANTIALIAS)

imagen.save(archivo, 'JPEG')
return base64.b64encode(archivo.getvalue())

except:
imagen =  #aqui tendrias una cadena de alguna imagen que quieras
regresar si tienes un error
return imagen

Saludos

El día 1 de septiembre de 2011 12:04, Hubermann huberm...@gmail.com escribió:
 Hola guillermo, gracias por la respuesta, ahora el tema es que soy sumamente 
 novato en esto de django
 (programo en php)

 como deberia hacer para saber cual es la imagen subida y darle las opciones 
 de crop para el thumbnail, resize y luego eliminar la original?  eso tengo q 
 hacerlo en el modelo?

 puedo hacer una funcion aparte y pasarle los parametros que quiero?

 por ejemplo:

 from mi_funcion_para_imagenes import crop_imagen, resize_imagen


 ultima = mi-imagen-recien-subida
 ultima.crop_imagen(150px, cuadrado) //opciones de cuadrado o normal para 
 cortar proporcionalmente
 ultima.resize_imagen(700px) //llevar la imagen a un ancho maximo de 700px y 
 luego eliminar la original


 Gracias por responder, saludos desde Baires



 On Sep 1, 2011, at 12:06 AM, Guillermo Moguel wrote:

 Puedes usar la librería de PIL con eso haces eso, yo la uso también
 con django y tengo esto para recortar la parte central mas o menos en
 una proporción de foto infantil

 from PIL import Image

 foto = Image.open(fichero)
 x = foto.size[0]
 y = foto.size[1]
 rel = round(Decimal(x)/Decimal(y), 2)

 if rel = 1.33:
    recorte = [((x/2)-(y*5/12)),0,((x/2)+(y*5/12)),y
    foto = foto.crop(recorte)

 return  foto



 Espero te sirva.
 Saludos de Chiapas.

 El día 31 de agosto de 2011 21:21, Hubermann huberm...@gmail.com escribió:
 Hola

 quisiera saber que se usa en python para la tarea hacer crop y generar un 
 thumbnail en Django.

 encontre un plugin thumbs.py pero solo hace thumbnail y lo hace cuadrado. 
 (quisiera darle un ancho y el alto q sea proporcional)

 tambien encontre photologue pero me parece demasido grande para lo que 
 necesito hacer y poca info de como utilizarlo

 Salu2
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/




 --
 Guillermo Moguel Mandujano
 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/

 ___
 Python-es mailing list
 Python-es@python.org
 http://mail.python.org/mailman/listinfo/python-es
 FAQ: http://python-es-faq.wikidot.com/




-- 
Guillermo Moguel Mandujano
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Icono en bandeja del sistema y ratón del Mac

2011-09-02 Por tema Carlos Zuniga
2011/9/2 alfonso saavedra n4...@yahoo.es:
 Buenas tardes, tengo esta duda.
 Actualmente estoy programando una aplicación para Linux que muestra un icono
 en la bandeja de sistema.
 El icono responde bien con un ratón de dos botones (izquierdo muestra una
 venta con cierta información si la hay y con el derecho muestra el menu)
 pero un amigo usa un ratón del Mac Os, el cual solo tiene un botón.
 E estado buscando alguna solución para que se abra el menu, bien con un
 doble click, bien si al pulsar se detecta que se pulso alguna tecla (Alt o
 Control), pero no e encontrado nada.
 A ver si alguien me puede hechar una mano.
 Gracias de antemano.

Que GUI estas utilizando, GTK, Qt?
___
Python-es mailing list
Python-es@python.org
http://mail.python.org/mailman/listinfo/python-es
FAQ: http://python-es-faq.wikidot.com/


Re: [Python-es] Crop + Thumbnail

2011-09-02 Por tema Hubermann
Muchas gracias por las respuestas.

bueno estuve mirando algo del codigo y googleando y me empece a hacer una 
funcion para lo que quiero.

me quedan un par de cosas que no logro hacer funcionar:

quisiera poder sacar el nombre de la imagen que estoy usando pero no me permite 
sacar solo el nombre (nose q funcion se usa)

quiero editar el nombre para reemplazar espacios por guion medio

mi foto de un auto .jpg   x   mi-foto-de-un-auto.jpg

tambien quiero ver de q forma generar un random de unos 6 digitos para agregar 
al nombre apra evitar duplicados, con base64 vi que generar todo un random 
enorme de digitos pero no lo veo optimo para SEO


#thumbnail  (ad42643 seria el random)
mi-foto-de-un-auto_ad42643_thumb_200.jpg
#foto orig
 mi-foto-de-un-auto_ad42643_700.jpg

Saludos y gracias!

##

from PIL import Image
import random

Author: Gabriel Hubermann
Web: www.hubermann.com
GTalk:huberm...@gmail.com
Description: resize image, create thumb in square or proportional, grayscale or 
color mode


def thumb_create(image, thumb_size,format,path,color):
image = Image.open(image)
if image.format.upper() == 'JPEG':
ext = 'jpg'
if image.format.upper() == 'PNG':
ext = 'png'
if image.format.upper() == 'GIF':
ext = 'gif'
final_name = miimagen_thumb.+str(thumb_size)+.+ext


#si requiere qeu sea BN o color -  parametro color en : true/false
if color==False:
if image.mode != L:
   image = image.convert('L')

#si es cuadrado
if format == 'square':
xsize, ysize = image.size
minsize = min(xsize,ysize)
xnewsize = (xsize-minsize)/2
ynewsize = (ysize-minsize)/2
area = image.crop((xnewsize, ynewsize, xsize-xnewsize, 
ysize-ynewsize))
resolution =thumb_size, thumb_size
finalthumb = area.resize(resolution , Image.ANTIALIAS)
final_name = path+final_name
finalthumb.save(final_name,quality = 100)

#si es proporcional
if format == 'normal':
new_width = thumb_size
new_height = new_width * image. size[1] / image. size[0]
resolution =new_width, new_height
finalthumb = image.resize(resolution , Image.ANTIALIAS)
final_name = path+final_name
finalthumb.save(final_name,quality = 100)


#imagen q tengo en la misma carpeta del script
imagen =card.png
#hice una carpeta llamada imagenes donde estoy guardando los thumb generados
path = imagenes/
# llamo a la funcion y le paso [archivo] [medidas] [cuadrado o proporcional] 
[carpeta a guardar] [True o False para color o BN]
thumb_create(imagen, 200, 'square', path, color=True)









###
On Sep 2, 2011, at 1:23 PM, Guillermo Moguel wrote:

 Hola Hubermann, efectivamente, para poder saber donde se encuentra tu
 imagen necesitaras consultarlo de tu modelo, en mi caso realizo una
 operación como la que tu requieres, el cambio es que yo no modifico la
 imagen original y únicamente modifico la imagen que me están
 consultando y regreso la nueva imagen. Esto me ha funcionado
 correctamente por que el flujo de la aplicación no en tan grande así
 que me va bien.
 
 Otro dato es que como la imagen no es accesible desde url (esto fue
 pensado así), las fotos en este caso son tratadas y regresadas para
 incrustar en un img de mi template.
 img src=data:image/jpg;base64,{{ photo }} alt=Base64 encoded image /
 
 
 Y con poco de miedo de faltar a la culturilla pythónica.
 
 def foto64(fichero, mini=False):
try :
  import base64
  archivo = StringIO()
  imagen = Image.open(fichero, r) #el fichero seria la ruta de
 tu consulta del modelo
  x,y = imagen.size
  rel = round(Decimal(x)/Decimal(y), 2)
 
  if rel = 1.33:
recorte = [((x/2)-(y*5/12)),0,((x/2)+(y*5/12)),y]
imagen = imagen.crop(recorte)
 
 if mini: #Esto lo uso para aun auto completado en un texbox, que
 regresa la foto con nombres
imagen.thumbnail((30, 34), Image.ANTIALIAS)
 else:
imagen.thumbnail((294, 391), Image.ANTIALIAS)
 
imagen.save(archivo, 'JPEG')
return base64.b64encode(archivo.getvalue())
 
 except:
imagen =  #aqui tendrias una cadena de alguna imagen que quieras
 regresar si tienes un error
return imagen
 
 Saludos
 
 El día 1 de septiembre de 2011 12:04, Hubermann huberm...@gmail.com 
 escribió:
 Hola guillermo, gracias por la respuesta, ahora el tema es que soy sumamente 
 novato en esto de django
 (programo en php)
 
 como deberia hacer para saber cual es la imagen subida y darle las opciones 
 de crop para el thumbnail, resize y luego eliminar la original?  eso tengo q 
 hacerlo en el modelo?
 
 puedo hacer una funcion aparte y pasarle los parametros que quiero?
 
 por ejemplo: