вы добавили это с питона-изображения-библиотекой, но вы не упоминаете его в любом месте в вашем вопросе, и вы не используете его.
Я очень подозреваю, что вы на самом деле хотите использовать его. Вас не интересует массив байтов, составляющих заголовок JFIF, данные сжатого изображения, сегмент EXIF и т. Д .; вам нужен массив из пиксельных значений.
Итак, сначала вы должны установить библиотеку изображений Python. Современная версия называется Pillow, а документы имеют полностью инструкции по установке, но часто это всего лишь pip install pillow
.
И теперь, вы можете использовать его в сценарии:
>>> from PIL import Image
>>> img = Image.open("temp.jpg")
>>> img.mode
'RGB'
>>> img.getpixel((0, 0))
(3, 148, 231)
Image
объект является своего рода массива, как уже. mode
позволяет мне знать, что это 8-битное изображение RGB, поэтому каждый пиксель будет иметь 3 значения: красный, зеленый и синий интенсивности от 0 до 255. И getpixel((0, 0))
возвращает мне красные, зеленые и синие значения для верхний левый пиксель.
Если вы действительно хотите плоский массив, вы можете пойти, что тоже:
>>> img.getdata()[0]
(3, 148, 231)
Или, если вы хотите плоский массив байтов (чередуя красно-сине-зелено-красно-сине-зеленый) вместо кортежей:
>>> img.getbytes()[0]
3
Как ваша программа построила массив байтов? Вы читали его из файла диска? Вы использовали библиотеку для ее создания? Был ли он передан вам каким-то внешним агентом? –
@ Robᵩ Я сделал редактирование на вопрос – user3286661
Интерпретация байтов файла JPEG - непростая задача, см., Например, http://en.wikipedia.org/wiki/JPEG_File_Interchange_Format и http://en.wikipedia.org/wiki/JPEG#Syntax_and_structure. Можете ли вы уточнить, что вы пытаетесь сделать? –