Il est probablement préférable d'utiliser la bibliothèque d'images Python pour ce faire, ce qui, je le crains, est un téléchargement séparé.
Le moyen le plus simple de faire ce que vous voulez est d'utiliser la méthode load () sur l'objet Image qui renvoie un objet d'accès au pixel que vous pouvez manipuler comme un tableau:
from PIL import Image
im = Image.open('dead_parrot.jpg') # Can be many different formats.
pix = im.load()
print im.size # Get the width and hight of the image for iterating over
print pix[x,y] # Get the RGBA Value of the a pixel of an image
pix[x,y] = value # Set the RGBA Value of the image (tuple)
im.save('alive_parrot.png') # Save the modified pixels as .png
Sinon, regardez ImageDraw qui donne une API beaucoup plus riche pour créer des images.
pip
qui était assez simple.easy_install --find-links http://www.pythonware.com/products/pil/ Imaging
pip install pillow
installera PIL avec succès et assez rapidement (peut-être nécessairesudo
si ce n'est dans un virtualenv).En utilisant Pillow (qui fonctionne avec Python 3.X ainsi que Python 2.7+), vous pouvez effectuer les opérations suivantes:
Vous avez maintenant toutes les valeurs de pixel. Si c'est RVB ou un autre mode peut être lu par
im.mode
. Ensuite, vous pouvez obtenir des pixels(x, y)
par:Vous pouvez également utiliser Numpy et remodeler le tableau:
Une solution complète et simple à utiliser est
Fumée testant le code
Vous n'êtes peut-être pas sûr de l'ordre largeur / hauteur / canal. Pour cette raison, j'ai créé ce dégradé:
L'image a une largeur de 100px et une hauteur de 26px. Il a un dégradé de couleur allant de
#ffaa00
(jaune) à#ffffff
(blanc). La sortie est:Choses à noter:
image[0]
, d'où la première rangée, a 26 triplets de la même couleurla source
PyPNG - décodeur / encodeur PNG léger
Bien que la question fasse allusion à JPG, j'espère que ma réponse sera utile à certaines personnes.
Voici comment lire et écrire des pixels PNG à l'aide du module PyPNG :
PyPNG est un seul module Python pur de moins de 4000 lignes, comprenant des tests et des commentaires.
PIL est une bibliothèque d'imagerie plus complète, mais elle est également beaucoup plus lourde.
la source
Comme l'a dit Dave Webb:
la source
la source
Manipulation d'images est un sujet complexe, et il est préférable si vous n'utilisez une bibliothèque. Je peux recommander gdmodule qui fournit un accès facile à de nombreux formats d'image différents depuis Python.
la source
Il y a un très bon article sur wiki.wxpython.org intitulé Working With Images . L'article mentionne la possibilité d'utiliser wxWidgets (wxImage), PIL ou PythonMagick. Personnellement, j'ai utilisé PIL et wxWidgets et les deux facilitent la manipulation d'images.
la source
Vous pouvez utiliser pygame le module de surfarray. Ce module a une méthode de retour de tableau de pixels 3D appelée pixels3d (surface). J'ai montré l'utilisation ci-dessous:
J'espère avoir été utile. Dernier mot: l'écran est verrouillé pour la durée de vie de screenpix.
la source
installez PIL en utilisant la commande "sudo apt-get install python-imaging" et exécutez le programme suivant. Il imprimera les valeurs RVB de l'image. Si l'image est grande, redirigez la sortie vers un fichier en utilisant '>' plus tard, ouvrez le fichier pour voir les valeurs RVB
la source
Vous pouvez utiliser le module Tkinter, qui est l'interface Python standard de la boîte à outils Tk GUI et vous n'avez pas besoin de téléchargement supplémentaire. Voir https://docs.python.org/2/library/tkinter.html .
(Pour Python 3, Tkinter est renommé tkinter)
Voici comment définir les valeurs RVB:
Et obtenez RVB:
la source
la source
la source
Si vous cherchez à avoir trois chiffres sous la forme d'un code de couleur RVB, le code suivant devrait le faire.
Cela peut fonctionner pour vous.
la source