Как сжать изображение 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') 
Другие вопросы по тегам