[pyar] Problema al utilizar una imagen de un método en otro

luis angel galindo narro BADOGREAT en hotmail.com
Sab Sep 9 19:20:19 ART 2017


Fernando lo arregle un poco  el codigo ya que estaba un poco desordenado  pero ahora me sale otro error


Exception in Tkinter callback
Traceback (most recent call last):
  File "C:\Users\BulleT\AppData\Local\Programs\Python\Python36-32\lib\tkinter\__init__.py", line 1699, in __call__
    return self.func(*args)
  File "C:\Users\BulleT\Desktop\1.py", line 22, in OnClick
    imgGray=Image.open(fp)
  File "C:\Users\BulleT\AppData\Local\Programs\Python\Python36-32\lib\site-packages\PIL\Image.py", line 2486, in open
    prefix = fp.read(16)
  File "C:\Users\BulleT\AppData\Local\Programs\Python\Python36-32\lib\codecs.py", line 321, in decode
    (result, consumed) = self._buffer_decode(data, self.errors, final)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
>>>
aca el codigo


http://linkode.org/#hXB5beMkys6xKpcvDJVT2
Linkode<http://linkode.org/#hXB5beMkys6xKpcvDJVT2>
linkode.org
A calm, blue sky. ... Select a text type: ...




________________________________
De: fernando sierra <fernandosierra9 en gmail.com>
Enviado: viernes, 08 de septiembre de 2017 05:54 p.m.
Para: luis angel galindo narro
Asunto: Re: [pyar] Problema al utilizar una imagen de un método en otro

creo q se por q:

    img=Image.open(pic)
    rImg= img.resize((200, 200), Image.ANTIALIAS)
    rImg = ImageTk.PhotoImage(rImg)
    lblImage=Label(ventana,image=rImg).place(x=150,y=150)
    return rImg

    el q entiende los metodos resize y size es img(variable)
    despues lo q haces le asignas a otro variable el resultado de img.resize a otra variable(rImg)
    entonces  esa imagen "Image.ANTIALIAS" esta en la varibla rlmg pero en la siguiente instruccion llamas a "ImageTk.PhotoImage(rImg)" y se lo asignas a rlmg (aca es donde esta mal) , se lo tendrias q asignar a otra variable para q haga lo de "ImageTk.PhotoImage(rImg)"" y esa varible reemplezarla aca lblImage=Label(ventana,image=VAriable).place(x=150,y=150).
Despues lo q tenes q retornar es rlmg q es la imagen q fue se le aplico el resize.

entonces cambia estas 2 lineas
    Variable = ImageTk.PhotoImage(rImg)
    lblImage=Label(ventana,image=Variable).place(x=150,y=150)

y tendria q andar.

#######Si no vas a tener q hacer lo siguiente , devolve imagen osea:
  return img

en identidad agregas esta linea:
    img=abre()
    rImg= img.resize((200, 200), Image.ANTIALIAS)
    salida = Image.new("L",(ancho,alto))
    for i in range(rlmg.size[0]):
        for j in range(rlmg.size[1]):
            p = rlmg.getpixel((i,j))
            q = p
            salida.putpixel((i,j),q)
    return salida





El 8 de septiembre de 2017, 17:30, luis angel galindo narro <BADOGREAT en hotmail.com<mailto:BADOGREAT en hotmail.com>> escribió:


hola Fernando, por favor como haria lo que me indicas,
al momento de mostrar la imagen me sale error
AttributeError: 'PhotoImage' object has no attribute 'size'
________________________________
De: fernando sierra <fernandosierra9 en gmail.com<mailto:fernandosierra9 en gmail.com>>
Enviado: viernes, 08 de septiembre de 2017 12:43 p.m.
Para: BADOGREAT en hotmail.com<mailto:BADOGREAT en hotmail.com>
Asunto: Fwd: [pyar] Problema al utilizar una imagen de un método en otro

hola yo también estoy iniciando con python

el unico cambio q haria seria agregar una definicion mas q haga lo de mostrar la imagen(ventana) y en abrir las caracteristicas de la imagen


def abre():
    pic=filedialog.askopenfilename()
    img=Image.open(pic)
    rImg= img.resize((200, 200), Image.ANTIALIAS)
    rImg = ImageTk.PhotoImage(rImg)
    return rImg

def ventana_imagen():
    img=abre()
    lblImage=Label(ventana,image=img).place(x=150,y=150)
    ventana.mainloop()

def identidad():
    #llamo a abre q tiene la definicion de la imagen
    img=abre()
    salida = Image.new("L",(ancho,alto))
    for i in range(img.size[0]):
        for j in range(img.size[1]):
            p = img.getpixel((i,j))
            q = p
            salida.putpixel((i,j),q)
    return salida

btnImag=Button(ventana,text="cargar Imagen",command=ventana_imagen,font=("Agency FB",14),width=15).place(x=200,y=80)
btnIdentidad=Button(ventana,text="Operador Identidad",command=identidad,font=("Agency FB",14),width=15).place(x=30,y=370)




---------- Mensaje reenviado ----------
De: luis angel galindo narro <BADOGREAT en hotmail.com<mailto:BADOGREAT en hotmail.com>>
Fecha: 8 de septiembre de 2017, 13:40
Asunto: [pyar] Problema al utilizar una imagen de un método en otro
Para: "pyar en python.org.ar<mailto:pyar en python.org.ar>" <pyar en python.org.ar<mailto:pyar en python.org.ar>>



Hola,estoy iniciando con python y estoy aprendiendo con imágenes y sus operadores puntuales; el código funciona de la siguiente forma obtengo la imagen mediante un método y un botón,la imagen se muestra en un tamaño de 200x200 en la interfaz, de esto con otro botón  quiero  convertir la imagen con el  método identidad

luego mostrar la imagen convertida , mi problema es que no entiendo como pasar la imagen que tengo del método abre() al método identidad().



aquí dejo el código que avance.

http://linkode.org/#Jx4U0FjRBgRCd1Bsbuk0r6



gracias por su atención y ayuda.





<http://linkode.org/#Jx4U0FjRBgRCd1Bsbuk0r6>

Linkode<http://linkode.org/#Jx4U0FjRBgRCd1Bsbuk0r6>
linkode.org<http://linkode.org>
A calm, blue sky. ... Select a text type: ...




_______________________________________________
Lista de Correo de PyAr - Python Argentina - pyar en python.org.ar<mailto:pyar en python.org.ar>
Sitio web: http://www.python.org.ar/

Para administrar la lista (o desuscribirse) entrar a http://listas.python.org.ar/listinfo/pyar

La lista de PyAr esta Hosteada en USLA - Usuarios de Software Libre de Argentina - http://www.usla.org.ar


------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20170909/fe5ba65d/attachment-0001.html>


Más información sobre la lista de distribución pyar