Python PIL: как записать, что PNG отображает для строкового представления

Вы в значительной степени поняли это, вам просто нужно объединить вашу нативную версию с вашей lodash попыткой:

var result = _.map(data.stats, o => [o.points, o.pos]);

Как видите, я заменил второй параметр в _.map (который был 'points') с функцией, используемой в вашей собственной версии.

91
задан Seth Johnson 28 November 2010 в 17:36
поделиться

3 ответа

Можно использовать BytesIO класс для получения обертки вокруг строк, которая ведет себя как файл. Эти BytesIO объект обеспечивает тот же интерфейс как файл, но сохраняет содержание только в памяти:

import io

with io.BytesIO() as output:
    image.save(output, format="GIF")
    contents = output.getvalue()

необходимо явно определить выходной формат с format параметр, иначе PIL повысит ошибку при попытке автоматически обнаружить его.

при загрузке изображения из файла, оно имеет format параметр, который содержит исходный формат файла, так в этом случае можно использовать format=image.format.

В старых версиях Python 2 перед введением io модуль Вы использовали бы StringIO модуль вместо этого.

182
ответ дан sth 24 November 2019 в 06:40
поделиться

сохраните (), может взять подобный файлу объект, а также путь, таким образом, можно использовать буфер в оперативной памяти как StringIO:

buf= StringIO.StringIO()
im.save(buf, format= 'JPEG')
jpeg= buf.getvalue()
13
ответ дан bobince 24 November 2019 в 06:40
поделиться

Когда Вы говорите, что "я хотел бы иметь количество таких изображений, сохраненных в словаре", не ясно, является ли это структурой в оперативной памяти или нет.

Вы не должны делать ни одного из этого к кроткому изображение в памяти. Просто сохраните эти image объект в Вашем словаре.

, Если Вы собираетесь записать свой словарь в файл, Вы могли бы хотеть посмотреть im.tostring() метод и Image.fromstring() функция

http://effbot.org/imagingbook/image.htm

im.tostring () => строка

Возвраты строка, содержащая пиксельные данные, с помощью стандартного "необработанного" кодера.

Image.fromstring (режим, размер, данные) => изображение

Создает память изображений из пиксельных данных в строке, с помощью стандартного "необработанного" декодера.

"формат" (.jpeg, .png, и т.д.) только имеет значение на диске при обмене файлами. Если Вы не обмениваетесь файлами, формат не имеет значения.

9
ответ дан Jonathan Root 24 November 2019 в 06:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: