Foros del Web » Programación para mayores de 30 ;) » Java »

imagen transparente

Estas en el tema de imagen transparente en el foro de Java en Foros del Web. hola, estoy intentando devolver un array de bits de una imagen a la cual le inserto texto, este es el código, el problema es que ...
  #1 (permalink)  
Antiguo 14/05/2010, 03:03
 
Fecha de Ingreso: abril-2007
Mensajes: 30
Antigüedad: 17 años
Puntos: 0
imagen transparente

hola, estoy intentando devolver un array de bits de una imagen a la cual le inserto texto, este es el código, el problema es que la imagen al ser png, al transformarla pierde la transparencia y aparece con fondo negro, este es el código.


public InputStream getInputStream () throws MalformedURLException {

ImageIcon imageIcon = new ImageIcon("c:/imagenes/" + nameImage);
Image imageResize = imageIcon.getImage();

ImageIcon imageIconResize = new ImageIcon (imageResize);

int resizeWidth = imageIconResize.getIconWidth();
int resizeHeight = imageIconResize.getIconHeight();

Panel p = new Panel();
BufferedImage bi = new BufferedImage(resizeWidth, resizeHeight,
BufferedImage.TYPE_INT_RGB);

Graphics2D big = bi.createGraphics();
big.drawImage(imageResize, 0, 0, p);

FontRenderContext frc = big.getFontRenderContext();
Font f = new Font("Times",Font.BOLD,resizeWidth/5);

String s = new String (num);
TextLayout tl = new TextLayout(s,f,frc);
float sw = (float)tl.getBounds().getWidth();
AffineTransform transform = new AffineTransform();
transform.setToTranslation(resizeWidth/2-sw/2,resizeHeight*7/8);
big.setColor(Color.white);
tl.draw(big,resizeWidth/2-sw/3,resizeHeight/3);



ByteArrayOutputStream os = new ByteArrayOutputStream();

JPEGImageEncoder encoder = JPEGCodec.createJPEGEncoder(os);
encoder.encode(bi);

byte[] byteArray = os.toByteArray();

return new ByteArrayInputStream ( byteArray );
}

Etiquetas: transparencia
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 14:55.