Cuando corro el siguiente codigo me aparese el siguiente error:
Código:
Traceback (most recent call last):
File "C:\Users\John\Documents\Project2\tyarea7.py", line 4, in <module>
width, height = media.get_width(image), media.get_height(image)
File "C:\Python27\lib\site-packages\pygraphics\media.py", line 62, in get_width
return pic.get_width()
AttributeError: 'unicode' object has no attribute 'get_width'
Que puedo hacer para corregirloo!!! Urgente es para mañana :(
Este es mi codigo:
Código Python:
Ver originali import media
image = media.load_picture('fdsfds.jpg')
width, height = media.get_width(image), media.get_height(image)
#para rotar una imagen 90 grados
def rotation():
tmp = 0
color = []
for x in range(0, width-1):
for y in range(height-1, 0, -1):
pixel = media.get_pixel(image, x, y)
color.append(media.get_color(pixel))
for y in range(0, height-1):
for x in range(0, width-1):
pixel = media.get_pixel(image, x, y)
media.set_color(pixel, color[tmp])
tmp = tmp + 1
media.save(image)
media.show(image)
#para que de el reflejo de una imagen
def reflection ():
color = []
tmp = 0
for y in range(0, height):
for x in range(0, width-1):
pixel = media.get_pixel(image, x, y)
color.append(media.get_color(pixel))
for y in range(0, height):
for x in range(width-1, 0, -1):
pixel = media.get_pixel(image, x, y)
media.set_color(pixel, color[tmp])
tmp = tmp + 1
media.save(image)
media.show(image)
#para que convierta una imagen a una escala mas pequeña
def scale():
color = []
tmp = 0
for y in range(0, height, 2):
for x in range(0, width, 2):
pixel = media.get_pixel(image, x, y)
color.append(media.get_color(pixel))
for y in range(0, (height/2)):
for x in range(0, (width/2)):
pixel = media.get_pixel(image, x, y)
media.set_color(pixel, color[tmp])
tmp = tmp + 1
media.crop_picture(image, 0, 0, ((width/2)-1), ((height/2)-1))
media.save(image)
media.show(image)
#Transformar una imagen a color a escala a grises
def grayscale():
for y in range(0, height):
for x in range(0, width):
pixel = media.get_pixel(image, x, y)
color = (media.get_red(pixel) + media.get_green(pixel) + media.get_blue(pixel))/3
media.set_red(pixel, color)
media.set_green(pixel, color)
media.set_blue(pixel, color)
media.save(image)
media.show(image)
# Debe de dar el promedio de los colores rojo,verde y azul en un rango de 10 * 10 de la imagen
def mosaic():
r, g, b, c = 0, 0, 0, 0
rango = 10
A = media.get_width(image)
L = media.get_height(image)
for y0 in range(0, L, rango):
for x0 in range(0, A, rango):
for y1 in range(y0,(y0+rango)):
for x1 in range(x0,(x0+rango)):
r=r+media.get_red(media.get_pixel(image, x1, y1))
g=g+media.get_green(media.get_pixel(image, x1, y1))
b=b+media.get_blue(media.get_pixel(image, x1, y1))
r=r/100
g=g/100
b=b/100
c = media.create_color(r,g,b)
for y1 in range(y0,y0+rango):
for x1 in range(x0,x0+rango):
media.set_color(media.get_pixel(image, x1, y1), c)
media.save(image)
media.show(image)
mosaic()