Можно использовать понимание списка (Python 2.6 +):
y = ["{0:0>2}".format(v) for v in x]
Или для Python до 2,6:
y = ["%02d" % v for v in x]
Редактирование: Пропущенный то, что Вы хотели дополнение нуля...
Я пробовал все, включая трюки здесь , и все, что я могу сказать, что вам лучше использовать ImageMagick с любым интерфейсом, библиотеки изображений Javas просто не до того, когда дело доходит до этого. Чтобы все было правильно, вам необходимо поддерживать столько форматов и алгоритмов.
Какую подсказку рендеринга вы используете? Обычно лучше всего подходит бикубическая передискретизация. На фотографиях, на которые вы ссылаетесь, они очень неровные, что заставляет меня думать, что вы используете ближайшего соседа в качестве подсказки.
В классе PictureScaler , на который вы ссылаетесь, в paintComponent
, он использует шесть различных средств изменения размера изображения. Вы пробовали все шесть, чтобы увидеть, какой из них дает лучший результат?
После нескольких разочаровывающих экспериментов я обнаружил следующую оценку изменения размера и применил многопроходный подход в своем проекте.
Для этого я скопировал метод getScaledInstance () в свой класс генератора эскизов, изменил свой подход к чтению изображений на использование ImageIO (тот, который возвращает BufferedImage), и теперь очень счастлив !
Я сравнил результат с изменением размера, выполненным в Photoshop CS3, и результат очень похож.