Todo esto es asumiendo que tienen instaldo
pythong y que saben trabajar con el.
moduloimagen.py
Código Python:
Ver originalfrom modulepythong import *
# -*- coding: iso-8859-15 -*-
#
# VERSION 1.1 (5-Noviembre-2003)
#
# AYUDA del módulo 'moduloimagen'. Define tres funciones,
# que podemos utilizar de la siguiente forma:
#
# - matriz = leerIm(nombreFichero). Lee la imagen del fichero
# indicado y la devuelve como una matriz de enteros. Cada
# elemento de la matriz se corresponde con un pixel de la
# imagen.
#
# - id = dibujarIm(matriz). Se dibuja la imagen en la ventana
# gráfica. La imagen se escala automáticamente para ocupar toda
# la ventana gráfica. El valor devuelto por la función puede
# utilizarse para borrar la imagen con la función que se presenta
# a continuación.
#
# - borrarImagen(id). Borra la imagen identificada como 'id'.
#
def _entero2color(n):
return '#'+('%02x'%n)*3
def leerIm(nombreFichero):
#lee imagen del fichero tux.txt
f=open(nombreFichero)
im1=f.read()
f.close()
#convierte datos en matriz
lin=im1.split('\n')
mat=[]
for l in lin:
if l=='': break
mat.append(map(int,l.split()))
return mat
def dibujarIm(mat):
filas=len(mat)
columnas=len(mat[0])
l=[]
xx1,yy1,xx2,yy2=window_coordinates()
px=float(xx2-xx1)/columnas
py=float(yy2-yy1)/filas
for i in range(filas):
for j in range(columnas):
if mat[i][j]==-1:
col='#ffff00'
else:
col=_entero2color(mat[i][j])
x1=xx1+px*j
y1=yy2-py*(i+1)
x2=xx1+px*(j+1)
y2=yy2-py*i
l.append(create_filled_rectangle(x1,y1,x2,y2,col))
return l
def borrarIm(ind):
map(erase,ind)
main.py
Código Python:
Ver original#coding: utf-8
from moduloimagen import *
def mostrar_dibujo(mat):
id = dibujarIm(mat)
raw_input("Presiona enter para continuar")
borrarIm(id)
def espejo(mat):
for row in mat:
row.reverse()
def negativo(mat):
rows = len(mat)
cols = len(mat[0])
for i in xrange(rows):
for j in xrange(cols):
mat[i][j] = 255 - mat[i][j]
def alto(mat):
mat = mat[0:len(mat)/2]
def transpuesta(mat):
rows = len(mat)
cols = len(mat[0])
mat = [[mat[j][i] for j in xrange(rows)] for i in xrange(cols)]
def vertical(mat):
mat.reverse()
def menu():
mensage = """
a) Reflexion horizontal
b) Blanco y negro (invertir)
c) Alto
d) Transpuesta
e) Reflexion vertical
cualquier otro: Salir
"""
mat = leerIm('tux78x70.txt')
while True:
op = raw_input(mensage)
if op == 'a':
espejo(mat)
elif op == 'b':
negativo(mat)
elif op == 'c':
alto(mat)
elif op == 'd':
transpuesta(mat)
elif op == 'e':
vertical(mat)
else:
break
mostrar_dibujo(mat)
menu()
Nota: Anexe una copia a su maestro.