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 B&N 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 B&N]
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:
>> 
>> 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/

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

Responder a