Масштабирование изображений / иконок в Java - PullRequest
0 голосов
/ 05 апреля 2009

Размер проекта, над которым я работаю, должен быть изменен при изменении разрешения монитора. Из-за устаревшего кода и других проблем мы делаем это с помощью пользовательской библиотеки, которая масштабирует все компоненты до соответствующих размеров при изменении разрешения.

Однако, когда мы масштабируем некоторые изображения / значки, используемые в проекте, они становятся размытыми / размытыми / сглаженными. Главным образом потому, что они все растровые гифки.

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

Что вы все думаете? Будет ли это хороший путь? Или есть лучшие альтернативы выбранному мною методу?

Если это лучший способ, то кто-то может дать указание о том, как выполнить преобразование SVG, например, JPG или PNG (предпочтительно). Доступные (и коммерчески используемые) библиотеки?

Спасибо

Ответы [ 3 ]

2 голосов
/ 05 апреля 2009

Алгоритмы в Java довольно хороши. Основная проблема звучит так, как будто ваши исходные изображения / значки уже слишком малы, поэтому их масштабирование оставляет артефакты. Реально простой подход заключается в том, чтобы изображения, отправленные вместе с приложением, имели больший размер и уменьшались в размерах. Я бы сказал, что политика в отношении размеров изображений (высота и ширина пикселей) необходима, поскольку вы, похоже, указываете, что только у некоторых есть проблемы.

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

0 голосов
/ 05 апреля 2009

Значки в Metal (кроссплатформенном) PL & F нарисованы в буферизованном изображении, чтобы смешаться с любой машиной, на которой он работает. Это быстрый метод, не добавляет зависимостей и нет необходимости изучать какие-либо дополнительные API (или языки!). Смотрите src.zip в вашем Sun JDK.

0 голосов
/ 05 апреля 2009

Батик может конвертировать SVG в PNG или JPEG

...