Voici ce que j'ai trouvé.
from PIL import Image, ImageFilter
print("enter image file:")
myimage = input()
try:
original = Image.open(myimage)
im = original.load()
except:
print('Invalid file')
# print(myimage)
# print("The size of the Image is: ")
print(original.format, original.size, original.mode)
# pixel_values = list(original.getdata())
'''
for y in range(0, 512):
row = ""
for x in range(0, 512):
row = ""
'''
print("Enter coordinates of desired pixel in x,y form")
coordinates = [int(x) for x in input().split(',')]
x, y = coordinates
R, G, B = im[x, y]
print("R,G,B values corresponding with this pixel are:")
print(R, G, B)
print("enter new R,G,B values")
new_RGB = [int(x) for x in input().split(',')]
r, g, b = new_RGB
im[x, y] = (r, g, b)
original.save(myimage)
Utiliser [ 'Image.putpixel()'] (http://pillow.readthedocs.io/en/4.2.x/reference/Image.html#PIL.Image.Image.putpixel). – martineau
@martineau des idées pour formater des variables pour l'image.putpixel? Je rencontre des problèmes avec ça. Le code que j'ai ajouté au bas de la fonction ressemble à ceci: "" "original.putpixel ((coordonnées), (new_RGB))" "" "Ce qui devrait fonctionner, puisque le premier argument serait les deux coordonnées cartésiennes et le second l'argument serait les valeurs r, g, b, pas sûr pourquoi cela ne fonctionne pas .. – physicslifter
Cela dépend du format de l'image ouverte.S'il est RVB, alors la valeur de couleur devrait être une séquence de trois _integers_, comme ' (10,2,4) 'not' "10,2,4" 'Les images en noir et blanc n'auraient besoin que d'une seule valeur entière (pas une séquence avec une seule chose) Cela signifie que vous ne pouvez pas utiliser le string la fonction 'input()' retourne.Vous devrez convertir la chaîne dans le format requis avant d'appeler 'putpixel()'. Il en est de même pour les coordonnées, sauf qu'elles auront toujours besoin d'être deux entiers valeurs représentant les positions x et y quel que soit le format de l'image – martineau