Probablemente sea mejor usar la biblioteca de imágenes de Python para hacer esto, lo cual me temo que es una descarga por separado.
La forma más fácil de hacer lo que desea es a través del método load () en el objeto Imagen que devuelve un objeto de acceso de píxeles que puede manipular como una matriz:
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
Alternativamente, mira ImageDraw, que ofrece una API mucho más rica para crear imágenes.
pip
que fue bastante fácil.easy_install --find-links http://www.pythonware.com/products/pil/ Imaging
pip install pillow
instalará PIL con éxito y con bastante rapidez (puede ser necesario,sudo
si no en un virtualenv).Con Pillow (que funciona con Python 3.X y Python 2.7+), puede hacer lo siguiente:
Ahora tiene todos los valores de píxeles. Si es RGB u otro modo puede leerse
im.mode
. Entonces puedes obtener píxeles(x, y)
por:Alternativamente, puede usar Numpy y remodelar la matriz:
Una solución completa y fácil de usar es
Prueba de humo en el código
Es posible que no esté seguro sobre el orden de ancho / alto / canal. Por esta razón, he creado este gradiente:
La imagen tiene un ancho de 100 px y una altura de 26 px. Tiene un degradado de color que va de
#ffaa00
(amarillo) a#ffffff
(blanco). El resultado es:Cosas a tener en cuenta:
image[0]
, de ahí la primera fila, tiene 26 triples del mismo color.fuente
PyPNG - decodificador / codificador ligero de PNG
Aunque la pregunta apunta a JPG, espero que mi respuesta sea útil para algunas personas.
Aquí le mostramos cómo leer y escribir píxeles PNG con el módulo PyPNG :
PyPNG es un único módulo Python puro de menos de 4000 líneas de largo, que incluye pruebas y comentarios.
PIL es una biblioteca de imágenes más completa, pero también es significativamente más pesada.
fuente
Como dijo Dave Webb:
fuente
fuente
La manipulación de imágenes es un tema complejo, y es mejor si usted no utiliza una biblioteca. Puedo recomendar gdmodule que proporciona un fácil acceso a muchos formatos de imagen diferentes desde Python.
fuente
Hay un muy buen artículo en wiki.wxpython.org titulado Working With Images . El artículo menciona la posibilidad de usar wxWidgets (wxImage), PIL o PythonMagick. Personalmente, he usado PIL y wxWidgets y ambos hacen que la manipulación de imágenes sea bastante fácil.
fuente
Puede utilizar pygame 's surfarray módulo. Este módulo tiene un método de retorno de matriz de píxeles 3d llamado píxeles3d (superficie). He mostrado el uso a continuación:
Espero haber sido de ayuda. Última palabra: la pantalla está bloqueada durante toda la vida de screenpix.
fuente
instale PIL usando el comando "sudo apt-get install python-imaging" y ejecute el siguiente programa. Imprimirá valores RGB de la imagen. Si la imagen es grande, redirija la salida a un archivo usando '>' luego abra el archivo para ver los valores RGB
fuente
Puede utilizar el módulo Tkinter, que es la interfaz estándar de Python para el kit de herramientas Tk GUI y no necesita una descarga adicional. Ver https://docs.python.org/2/library/tkinter.html .
(Para Python 3, Tkinter se renombra a tkinter)
Aquí se explica cómo configurar los valores RGB:
Y obtén RGB:
fuente
fuente
fuente
Si está buscando tener tres dígitos en forma de código de color RGB, el siguiente código debería hacer exactamente eso.
Esto puede funcionar para usted.
fuente