Значит задача у меня такая. На JAVA нужно выдать комбинированную иконку в браузер.
На JAVA нужно выдать иконку в браузер.
Есть фоновое изображение (типа круг с бордером) и сверху накладывается иконка (PNG с прозрачным фоном)
При наложении вместо полупрозрачности - темный фон
Помогите решить эту задачу. .
Блок кода (JAVA):
try
{
response.setContentType("image/png");
ServletOutputStream _out = response.getOutputStream();
// создаем картинку 90Х90.
BufferedImage _bufferedImage = new BufferedImage(90, 90, BufferedImage.TYPE_INT_ARGB);
// загружаем фон.
String _imageDir = Helper.getConfig().getProperty("imagePath");
Image _imageBackgroung = java.awt.Toolkit.getDefaultToolkit().getImage(_imageDir + "new/i_pattern.png");
ImageIcon _ic = new ImageIcon(_imageBackgroung);
// добавляем фон.
_bufferedImage.getGraphics().drawImage(_imageBackgroung, 0, 0, _ic.getImageObserver());
// загружаем иконку.
ImageList _il = (ImageList)request.getSession().getAttribute("imageList");
InputStream _in = _il.getImageById(79).getSource().getBinaryStream();
Image _imageIcon = ImageIO.read(_in);
// добавляем иконку.
_ic = new ImageIcon(_imageIcon);
int dx = (90 - _ic.getIconWidth()) / 2;
int dy = (90 - _ic.getIconHeight()) / 2;
((Graphics2D)(_bufferedImage.getGraphics())).setComposite(AlphaComposite.SrcOver);
((Graphics2D)(_bufferedImage.getGraphics())).drawImage(_imageIcon, dx, dy, _ic.getImageObserver());
// отправляем в браузер.
ImageIO.write(_bufferedImage, "png", _out);
_imageIcon.flush();
}
Заранее спасибо.
ImageList _il = (ImageList)request.getSession().getAttribute("imageList");
InputStream _in = _il.getImageById(79).getSource().getBinaryStream();
ImageList - это объект содержащий массив картинок. Метод "getSource()" возвращает объект "BLOB"
to Manunich
не помогло.
Ресурс №1. компилятор ругается на WritableRaster и DirectColorModel.
Ресурс №2. у него проблема так и не решилась.
Ресурс №3. не подходит
Даже этот вариант: http://www.javaworld.com/community/node/7629 не помог