Comment lire la valeur RVB d'un pixel donné en Python?
Si j'ouvre une image avec open("image.jpg")
, comment puis-je obtenir les valeurs RVB d'un pixel en supposant que j'ai les coordonnées du pixel?
Alors, comment puis-je faire l'inverse de ce? En commençant par un blanc graphique, 'écrire' un pixel avec une certaine valeur RVB?
Que je préfère, si je n'avais pas à télécharger des bibliothèques supplémentaires.
Vous devez vous connecter pour publier un commentaire.
Il est probablement préférable d'utiliser le Python Image De La Bibliothèque de faire ce dont j'ai peur est un téléchargement séparé.
La façon la plus simple de faire ce que vous voulez, c'est via le méthode load() sur l'objet Image qui retourne un pixel de l'accès aux objets, que vous pouvez manipuler comme un tableau:
Sinon, regardez ImageDraw qui donne un effet beaucoup plus riche API pour créer des images.
pip
qui a été assez facile.easy_install --find-links http://www.pythonware.com/products/pil/ Imaging
pip install pillow
va installer PIL avec succès et assez rapidement (peut-être besoinsudo
si ce n'est dans un virtualenv).pip install pillow
PyPNG - léger PNG encodeur/décodeur
Bien que la question des astuces au JPG, j'espère que ma réponse vous sera utile pour certaines personnes.
Voici comment lire et écrire PNG pixels à l'aide de PyPNG module:
PyPNG est un seul pure module Python moins de 4000 lignes de long, y compris les tests et commentaires.
PIL est plus complète de l'imagerie de la bibliothèque, mais c'est aussi sensiblement plus lourd.
À l'aide de Oreiller (qui fonctionne avec Python 3.X ainsi que Python 2.7+), vous pouvez effectuer les opérations suivantes:
Vous disposez maintenant de toutes les valeurs de pixels. Si il est en mode RVB ou un autre mode peut être lu par
im.mode
. Ensuite, vous pouvez obtenir pixel(x, y)
par:Alternativement, vous pouvez utiliser Numpy et de remodeler la matrice:
Complète, simple à utiliser, la solution est
Comme Dave Webb a déclaré:
Il y a un très bon article sur wiki.wxpython.org droit Travailler Avec Des Images. L'article mentionne la possibilité de l'utilisation de wxWidgets (wxImage), PIL ou PythonMagick. Personnellement, j'ai utilisé la LIP et wxWidgets et à la fois faire de la manipulation d'image assez facile.
Vous pouvez utiliser pygame's surfarray module. Ce module a une 3d pixel de la matrice de retour de la méthode appelée pixels3d(surface). J'ai montré d'utilisation ci-dessous:
Je l'espère, été utile. Dernier mot: l'écran est verrouillé pour la durée de vie de screenpix.
De manipulation de l'Image est un sujet complexe, et il est préférable si vous ne utiliser une bibliothèque. Je peux recommander gdmodule qui fournit un accès facile à de nombreux différents formats d'image à partir de l'intérieur de Python.
installer PIL à l'aide de la commande "sudo apt-get install python-imaging" et exécutez le programme suivant. Il permet d'imprimer les valeurs RVB de l'image. Si l'image est grande rediriger la sortie vers un fichier en utilisant " >' ensuite, ouvrez le fichier pour voir les valeurs RVB
Vous pouvez utiliser le module Tkinter, qui est le standard de Python interface pour les Savoirs traditionnels GUI toolkit, et vous n'avez pas besoin de télécharger. Voir https://docs.python.org/2/library/tkinter.html.
(Pour Python 3, Tkinter, est renommé pour tkinter)
Ici est de savoir comment définir les valeurs RVB:
Et obtenir RVB:
Si vous êtes à la recherche de trois chiffres dans la forme d'une couleur RVB code, le code suivant devrait le faire.
Cela peut fonctionner pour vous.