TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки
Python Заметки avatar

TGINSIGHT POST

Post #216

@pythonotes

Python Заметки

Прегледи2,520Број на прегледи
Објавено17 фев.17.02.2021 г., 09:01
Содржина

Содржина на објавата

Ранее я показал как упаковать ваше Python-приложение в ZIPAPP. В дополнение к этой теме покажу ещё один способ как достать изображение из архива, не сохраняя его на диск и сразу перегнать в класс PIL.Image для дальнейших манипуляций. Что есть ресурс в данном контексте? Это любой объект который можно прочитать как файл. В Python 3.7появился новый стандартный способ работы с ресурсами внутри пакетов. Это модуль importlib.resources. Его следует использовать и для случаев с контейнерами (ZIP, EGG) и для обычных пакетов. Для начала импортнём нужные модули from importlib.resources import read_binary from PIL import Image import io Читаем файл ресурса из пакета data = read_binary("package_name", "image.jpg") Создаём класс Image img = Image.open(io.BytesIO(data)) Картинка загружена в память, можно с ней что-то делать img.thumbnail((200, 200)) И после изменений сохранить в файл img.save(path, 'JPG') или использовать еще как-то img.show() Модуль получил бекпорт для старых версий в виде стороннего пакета importlib_resources. До появления этого модуля использовался модуль pkg_resources, входящий в состав setuptools. Но он теперь неактуален. #libs