Как сжать изображение PNG с помощью алгоритма S3TC/DXT в python?
Я пытаюсь найти способ сжатия изображений (например, PNG) с помощью любого алгоритма S3TC/DXT с использованием библиотек Python.
Как я вижу в библиотеке подушек (PIL) в формате DDS в Read-only formats
раздел. Поэтому Подушка не может быть использована для этой цели.
Поиск в Google не дал положительных результатов.
Вопрос:
Можно ли сделать с питоном?
Может ли кто-нибудь предоставить ссылку на библиотеки с таким функционалом?(Что проверено на практике)
Формат DDS не является обязательным для моего случая. Мне нужен только сжатый файл.
PS:
Это требуется для создания текстур для будущего использования.
Библиотека должна поддерживать разные алгоритмы сжатия.
1 ответ
Вы можете использовать Python Wand. Здесь я создаю псевдо-изображение с пурпурно-желтым градиентом и сохраняю как DDS
:
from wand.image import Image
with Image(width=200, height=80, pseudo='gradient:magenta-yellow') as img:
img.save(filename='result.dds')
Или, если вы хотите загрузить файл PNG и сохранить как DDS:
with Image(filename='input.png') as img:
img.save(filename='result.dds')