
Problema con programa para pintar imágenes, python
Publicado por Víctor (2 intervenciones) el 13/01/2016 19:48:23
Hola buenas,
estoy tratando de hacer un programa para que pinte una parte de una imagen dada. Tiene que pintar un rectángulo que tiene una esquina en la esquina izquierda de arriba de la imagen. Dependiendo de la variable mode, el color del triángulo puede ser la media de los colores que hay en el área del rectángulo, el color mínimo o el máximo. La función se tiene que llamar pixelate(img, pixel_width, pixel_height, mode), donde pixel_width y pixel_height son la longitud y la altura del rectángulo respectivamente. El caso es que he hecho un programa pero no entiendo porque me pinta la imagen de negro al meter pixelate(chess, 110, 110, mean). Este es el programa (el enlace a la imagen chess: http://wild.mat.ucm.es/P2_2015-2016/tests/chess_200x200_100x100.jpeg ):
estoy tratando de hacer un programa para que pinte una parte de una imagen dada. Tiene que pintar un rectángulo que tiene una esquina en la esquina izquierda de arriba de la imagen. Dependiendo de la variable mode, el color del triángulo puede ser la media de los colores que hay en el área del rectángulo, el color mínimo o el máximo. La función se tiene que llamar pixelate(img, pixel_width, pixel_height, mode), donde pixel_width y pixel_height son la longitud y la altura del rectángulo respectivamente. El caso es que he hecho un programa pero no entiendo porque me pinta la imagen de negro al meter pixelate(chess, 110, 110, mean). Este es el programa (el enlace a la imagen chess: http://wild.mat.ucm.es/P2_2015-2016/tests/chess_200x200_100x100.jpeg ):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
from PIL import Image
chess = Image.open('chess.jpeg','r')
def pixelate(img, pixel_width, pixel_height, mode):
width, height = img.size
l = []
for x in range(pixel_width):
for y in range(pixel_height):
l.append(img.getpixel((x, y)))
color = mode(l) // 1
for x in range(pixel_width):
for y in range(pixel_height):
img.putpixel((x, y), color)
Valora esta pregunta


0