Provavelmente, é melhor usar a Biblioteca de Imagens Python para fazer isso, o que, receio, é um download separado.
A maneira mais fácil de fazer o que você quer é através do método load () no objeto Image, que retorna um objeto de acesso a pixels que você pode manipular como uma 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
Como alternativa, observe o ImageDraw, que fornece uma API muito mais rica para a criação de imagens.
pip
que foi bastante fácil.easy_install --find-links http://www.pythonware.com/products/pil/ Imaging
pip install pillow
instalará o PIL com sucesso e com bastante rapidez (pode ser necessário,sudo
se não em um virtualenv).Usando o Pillow (que funciona com o Python 3.X e o Python 2.7+), você pode fazer o seguinte:
Agora você tem todos os valores de pixel. Se é RGB ou outro modo pode ser lido por
im.mode
. Então você pode obter pixels(x, y)
por:Como alternativa, você pode usar Numpy e remodelar a matriz:
Uma solução completa e simples de usar é
Fumaça testando o código
Você pode estar incerto sobre a ordem da largura / altura / canal. Por esse motivo, criei este gradiente:
A imagem tem uma largura de 100px e uma altura de 26px. Tem um gradiente de cor que vai de
#ffaa00
(amarelo) a#ffffff
(branco). A saída é:Coisas a serem observadas:
image[0]
, portanto, a primeira linha, tem 26 triplos da mesma corfonte
PyPNG - decodificador / codificador PNG leve
Embora a pergunta indique o JPG, espero que minha resposta seja útil para algumas pessoas.
Veja como ler e escrever pixels PNG usando o módulo PyPNG :
PyPNG é um único módulo Python puro com menos de 4000 linhas, incluindo testes e comentários.
O PIL é uma biblioteca de imagens mais abrangente, mas também é significativamente mais pesada.
fonte
Como Dave Webb disse:
fonte
fonte
Manipulação de imagens é um tema complexo, e é melhor se você não usar uma biblioteca. Posso recomendar o gdmodule, que fornece acesso fácil a muitos formatos de imagem diferentes no Python.
fonte
Há um artigo realmente bom no wiki.wxpython.org intitulado Trabalhando com Imagens . O artigo menciona a possibilidade de usar wxWidgets (wxImage), PIL ou PythonMagick. Pessoalmente, usei PIL e wxWidgets e ambos facilitam bastante a manipulação de imagens.
fonte
Você pode usar o módulo surfarray do pygame . Este módulo possui um método de retorno de matriz de pixels 3d chamado pixels3d (superfície). Eu mostrei o uso abaixo:
Espero ter sido útil. Última palavra: a tela está bloqueada por toda a vida do screenpix.
fonte
instale o PIL usando o comando "sudo apt-get install python-imaging" e execute o seguinte programa. Irá imprimir valores RGB da imagem. Se a imagem for grande, redirecione a saída para um arquivo usando '>' depois abra o arquivo para ver os valores RGB
fonte
Você pode usar o módulo Tkinter, que é a interface padrão do Python para o kit de ferramentas Tk GUI e não precisa de download extra. Consulte https://docs.python.org/2/library/tkinter.html .
(Para Python 3, Tkinter é renomeado para tkinter)
Aqui está como definir valores RGB:
E obtenha RGB:
fonte
fonte
fonte
Se você deseja ter três dígitos na forma de um código de cores RGB, o código a seguir deve fazer exatamente isso.
Isso pode funcionar para você.
fonte