[ Foro de Python ]

Cargar una Imagen mediante un boton

07-Sep-2017 14:54
Invitado (LuisAngel)
0 Respuestas

Hola, soy nuevo en python estoy empezando a aprender a modificar imagenes mediante los operadores puntuales
me pidieron hacer un menú con cada operador modificando una imagen tengo este avance
el programa funciona hasta la parte de cargar la imagen luego lo muestra en la ventana pero no logro ponerlo dentro del método identidad para que este lo modifique y muestre nuevamente pero como imagen guardada.

from tkinter import *
from PIL import ImageTk, Image
from tkinter import filedialog

ancho = 0
alto = 0

ventana=Tk()
ventana.geometry("500x600+100+100")
ventana.title("Ejercicio 2")

##ventana.config(bg="Blue")
def abre():
   pic=filedialog.askopenfilename()
   img=Image.open(pic)
   o_size=img.size
   f_size=(200,200)
   factor = min(float(f_size[1])/o_size[1], float(f_size[0])/o_size[0])
   width = int(o_size[0] * factor)
   height = int(o_size[1] * factor)
   rImg= img.resize((width, height), Image.ANTIALIAS)
   rImg = ImageTk.PhotoImage(rImg)
   lblImage=Label(ventana,image=rImg).place(x=150,y=150)
   ventana.mainloop()
   return rImg


def identidad():
 
   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

##labeles##
,font=("Agency FB",18)).place(x=0,y=10)
lbldes=Label(text="Crear en python un menu para seleccionar el tipo de operador puntual a mostrar."
,font=("Agency FB",16)).place(x=10,y=45)
lblimang=Label(text="Pulse para cargar imagen",font=("Agency FB",14)).place(x=25,y=80)
##botones##
btnImag=Button(ventana,text="cargar Imagen",command=abre,font=("Agency FB",14),width=15).place(x=200,y=80)
ventana.mainloop()
btnidentidad=Button(ventana,text="Mostrar Operador Identidad",command=identidad,
                  font=("Agency FB",14)).place(x=40,y=400)




Si ya eres usuario del sistema, puedes contestar desde tu cuenta y así ganar prestigio.

Si sólo eres un visitante, puedes optar por...