J'ai besoin de python pour changer la couleur d'un pixel sur une image, comment faire?Est-il possible de changer la couleur d'un pixel individuel en Python?
18
A
Répondre
20
Pour construire sur l'exemple donné dans link de Gabi Purcaru, voici quelque chose bricolé à partir du PIL docs.
La façon la plus simple pour modifier de manière fiable un seul pixel en utilisant PIL serait:
x, y = 10, 25
shade = 20
from PIL import Image
im = Image.open("foo.png")
pix = im.load()
if im.mode == '1':
value = int(shade >= 127) # Black-and-white (1-bit)
elif im.mode == 'L':
value = shade # Grayscale (Luminosity)
elif im.mode == 'RGB':
value = (shade, shade, shade)
elif im.mode == 'RGBA':
value = (shade, shade, shade, 255)
elif im.mode == 'P':
raise NotImplementedError("TODO: Look up nearest color in palette")
else:
raise ValueError("Unexpected mode for PNG image: %s" % im.mode)
pix[x, y] = value
im.save("foo_new.png")
qui fonctionnera dans PIL 1.1.6 et plus. Si vous avez la malchance de devoir supporter une ancienne version, vous pouvez sacrifier les performances et remplacer pix[x, y] = value
par im.putpixel((x, y), value)
.
+5
+1 pour 'NotImplementedError' – heltonbiker
utiliser la bibliothèque PIL – akonsu
@akonsu: A en juger par ses tags, il a déjà trouvé cette bibliothèque ... –
quel format de fichier? juste des données bitmap? – Nate