PIL: изменение размеров Изображения: Алгоритм, подобный Firefox

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

9
задан Glorfindel 19 April 2019 в 22:51
поделиться

3 ответа

Я изменил размер "оригинал" с Python и получил те же результаты, что и вы. Я также изменил размер «оригинала» с помощью GIMP и получил такое же (если не худшее) качество. Это заставило меня подозревать, что Firefox читерствует. Возможно преобразование в RGB («исходный» режим - это индексированный цвет). Таким образом, следующий код:

import Image
im=Image.open("beta-icon.gif")
im = im.convert("RGB")
im=im.resize((36,36), Image.ANTIALIAS)
im.save("q5.png")

Результат почти такой же, как у Firefox.

9
ответ дан 4 December 2019 в 21:10
поделиться

Попробуйте использовать метод resize () вместо thumbnail () . По моему опыту, они ведут себя по-разному.

Кроме того, ваш код показывает чтение .gif, а ваш оригинал - .png. Перед сокращением убедитесь, что у вас действительно есть все исходные данные.

0
ответ дан 4 December 2019 в 21:10
поделиться

Похоже, что сначала RGB, а затем ANTIALIS выглядят как Лучший. Есть ли другие рекомендации?

Нет, это действительно ожидаемый результат. Любое изменение размера, выполненное в исходном ограниченном режиме палитры, может привести к появлению неровного мусора из-за отсутствия доступных промежуточных цветов в палитре; и ANTIALIAS - это фильтр изменения размера только , который предназначен для использования для уменьшения масштаба: BILINEAR и BICUBIC действительно принимают только два пикселя на ось и смешивают их между собой, что хорошо для масштабирования, но не работает вообще когда масштабируются одна или обе оси.

К сожалению, thumbnail () никогда не работал должным образом, поэтому вам придется сделать это самостоятельно.

1
ответ дан 4 December 2019 в 21:10
поделиться
Другие вопросы по тегам:

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