Python PIL: как понимать шестнадцатеричный код в объекте ‹ImagingCore по адресу 0x7fb02637f330›?

Код:

>>> import Image
>>> img = Image.open("mini.jpg")
>>> print img.getdata()

return: ImagingCore object at 0x7fb02637f330

Я знаю, что это объект Библиотеки изображений Python (PIL) в шестнадцатеричном формате.

Как я могу правильно перевести этот числовой код? Это *jpg, размер 34x34.


person Jhon Gaza    schedule 30.04.2015    source источник
comment
Это адрес изображения в памяти. На что вы хотите это перевести? Вы не можете отобразить изображение в командной строке, вам понадобится библиотека с графическим интерфейсом, такая как tkinter.   -  person Paul Rooney    schedule 01.05.2015
comment
Если вы хотите получить информацию об объекте, у него есть целая куча атрибутов и методов, которые вы можете использовать. Какие из них вы используете, зависит от того, какую информацию вы хотите получить. И поскольку только вы знаете, какая информация вам нужна, вы должны самостоятельно прочитать справку/документацию, написать код, а затем, если вы не можете найти или понять что-то, задать вопрос здесь.   -  person abarnert    schedule 01.05.2015
comment
возможный дубликат Отображать изображения jpg в python   -  person Michael Roland    schedule 01.05.2015
comment
@PaulRooney хорошо, он мог запустить изображение через libaa или подобное и отобразить его художественную визуализацию ASCII в командной строке. :)   -  person abarnert    schedule 01.05.2015
comment
@MichaelRoland это не похоже на дубликат. Этот вопрос спрашивает, как получить информацию об изображении для печати; это касается отображения изображения на кнопке Tkinter. Они лишь отдаленно связаны.   -  person abarnert    schedule 01.05.2015
comment
@abarnert Интересно, я думал, что кто-нибудь может придумать способ отобразить его в командной строке. Я должен буду попробовать это сам.   -  person Paul Rooney    schedule 01.05.2015
comment
@abarnert Согласен (и отозвал свой голос). Я интерпретировал вопрос так, как хочу распечатать (отобразить) изображение. Как я могу это сделать?   -  person Michael Roland    schedule 01.05.2015
comment
В качестве примечания, если вы делаете import Image, а не from PIL import Image, это означает, что (а) вы используете древний PIL вместо его современной вилки Pillow, и (б) вы установили его способом, который не рекомендовался в течение очень долгого времени. Я бы предложил удалить его и сделать pip install pillow. (И если вы учитесь по древнему учебнику, который не согласен, найдите более новый учебник.)   -  person abarnert    schedule 01.05.2015
comment
возможный дубликат В Python, что означает '‹function at...›' ?   -  person tripleee    schedule 03.05.2015


Ответы (1)


Вы не можете «перевести это число правильно», потому что все, что означает это число, — это то, где в памяти Pillow хранит объект, и нет ничего полезного, во что вы можете это перевести.

Если вы пытаетесь получить информацию об объекте в Python, вы делаете это, обращаясь к его атрибутам и методам.

Объект, возвращаемый Image.open, представляет собой Image.Image объект. Он имеет такие атрибуты, как mode (строка вида "RGB") и такие методы, как getextrema (пара минимальных и максимальных значений пикселей, например (3, 237)).

Объект, возвращенный его методом getdata это просто плоская последовательность значений пикселей. В нем не так много полезной информации, если вы действительно не хотите перебирать эти значения пикселей. Таким образом, вы не можете «перевести» это во что-то полезное.

Итак, если вам нужна какая-то информация об изображении, вы должны знать, какая информация вам нужна, а затем посмотреть в документации, как получить доступ к этой информации. Например, если вы хотите режим изображения:

>>> import Image
>>> img = Image.open("mini.jpg")
>>> print img.mode
RGB
person abarnert    schedule 30.04.2015