Автор статьи: Великий и ужасный
Yoti Необходимые программы:
Adobe Photoshop 7 (или выше)
pngout + GUI
Думаю, многие уже представляют метод "захексивания" картинок в архивы. И везде указано "размер изображения должен быть меньше или равен размеру оригинала". А как же этого добиться? Особенно, если 5кб картинка после перерисовку стала 55кб...
Немного теории: изображение (конкретнее, речь сейчас идет о PNG) может быть двух форматов: PNG24 и PNG8. Оба они выглядят как файлы *.PNG.
PNG24 - это полноцветное изображение с поддержкой прозрачности и частичной прозрачности. Занимает достаточно много места.
PNG8 - это изображение с палитрой в 256 цветов (или меньше), зато абсолютно любых! Прозрачность также поддерживается, но только полностью (т.е. полупрозрачный пиксель превратится в непрозрачный, но более светлый). Занимает это изображение меньше.
Также, многие программы для редактирования изображений (в т.ч. всем известный Adobe Photoshop) любят добавлять информацию о себе любимой. JAVA приложению нет никакого дела до этой информации, а размер изображения она увеличивает.
1. Photoshop
1. Открываем в Фотошопе необходимое изображение.
2. Нажимаем File -> Save for WEB (Файл -> Сохранить для WEB)(или ALT+CTRL+SHIFT+S).
3. Проверяем, чтобы в левом окне была открыта закладка Optimized.
4. Выбираем из первого списка PNG-8.
5. Смотрим в нижней части левого окна на размер изображения.
6. Уменьшая значение Colors (Цвета) в правой части, а также перебирая варианты Perceptual/Adaptive/Selective/Restrictive добиваемя необходимого значения размера изображения.
7. Сохраняем изображение кнопкой Save (Сохранить).
8. Фотошоп не закрываем!
2. PngOut
1. Загружаем
2. Кидаем в папку с программой наше изображение.
3. Жмём в программе кнопку >>.
4. Смотрим размер изображения.
5. Если размер вышел сильно меньше нужного, можно вернуться в Фотошоп и повторить шаги 6-8 с другими значениями. Затем обработать изображение и т.д.
3. Финал
Вот так, комбинируя две программы мы добиваемся необходимого размера изображения.