Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java: Общие вопросы > Масштабирование прозрачного gif'а


Автор: Maksym 10.2.2006, 11:47
Следующим кодом, по большей части подсмотреным на нашем форуме, масштабирую изображение, полученное из byte[] data
Код

ImageIcon image = new ImageIcon(data);
Image im = image.getImage();

BufferedImage bi = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(im, 0, 0, null);

Image im1 = bi.getScaledInstance(newWidth, newHeight, Image.SCALE_SMOOTH);
bi = new BufferedImage(newWidth, newHeight, BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(im1, 0, 0, null);       
       
File outputFile = new File(filePath);
ImageIO.write(bi, "JPG", outputFile); 

C .jpg и обычными .gif и .png никаких проблем нет. Прозрачные .gif и .png - портятся.
Можно ли средствами sdk решить проблему? Или нужно обращатся к сторонним пакетам? Если да, то к каким?

ЗЫ. ImageIO не позволяет созранять в .gif. Есть ли в sdk возможность созранить изображение в .gif?

Автор: LSD 10.2.2006, 12:06
Цитата(Maksym @ 10.2.2006, 11:47 Найти цитируемый пост)
ЗЫ. ImageIO не позволяет созранять в .gif. Есть ли в sdk возможность созранить изображение в .gif?

Нет. Из-за лицензионных ограничений GIF.

Автор: Maksym 10.2.2006, 12:15
LSD
Гм. И что же делать? smile

Автор: LSD 10.2.2006, 12:28
Почитай http://java.sun.com/products/java-media/jai/forDevelopers/jaifaq.html#fileformat.

Автор: Maksym 15.2.2006, 13:31
Кароче, sdk не может нормально работать с прозрачностью ни в одном из форматов... только дополнительные пакеты... грустно...
Добавлено @ 13:32
LSD
ЗЫ. Спасибо, за внимание и время.

Автор: kkorsakoff 19.2.2006, 22:31
Почему это не может? У меня png отлично рисовались с альфой. Просто тип всех BufferedImage должен быть BufferedImage.TYPE_INT_ARGB

Автор: Maksym 25.2.2006, 20:36
kkorsakoff
прозрачный gif отмасштабировать в gif с сохранением прозрачности... - нет механизма в sdk
прозрачный gif отмасштабировать в png с сохранением прозрачности... - не получается, ни для каких констант BufferedImage - альфа заменяется на светленько-серый..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)