Re: [Python-es] Recorte circular de una imagen
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
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/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
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: