En un proyecto, quiero cambiar el tamaño y cambiar la opacidad de una imagen simultáneamente. Hasta ahora, creo que tengo el cambio de tamaño. Yo uso un método definido como para lograr el cambio de tamaño:Cambiar la opacidad de la imagen
public BufferedImage resizeImage(BufferedImage originalImage, int type){
initialWidth += 10;
initialHeight += 10;
BufferedImage resizedImage = new BufferedImage(initialWidth, initialHeight, type);
Graphics2D g = resizedImage.createGraphics();
g.drawImage(originalImage, 0, 0, initialWidth, initialHeight, null);
g.dispose();
return resizedImage;
}
Recibí este código desde aquí. Lo que no puedo encontrar una solución es cambiar la opacidad. Eso es lo que me pregunto cómo hacer (si es posible). Gracias por adelantado.
ACTUALIZACIÓN:
Me trató este código para mostrar una imagen de un círculo con interiores y exteriores transparentes (ver imagen abajo) en crecimiento y cada vez menos opaca, pero que no funcionó. No estoy seguro de lo que está mal. Todo el código está en una clase llamada Animación
public Animation() throws IOException{
image = ImageIO.read(new File("circleAnimation.png"));
initialWidth = 50;
initialHeight = 50;
opacity = 1;
}
public BufferedImage animateCircle(BufferedImage originalImage, int type){
//The opacity exponentially decreases
opacity *= 0.8;
initialWidth += 10;
initialHeight += 10;
BufferedImage resizedImage = new BufferedImage(initialWidth, initialHeight, type);
Graphics2D g = resizedImage.createGraphics();
g.setComposite(AlphaComposite.getInstance(AlphaComposite.SRC_OVER, opacity));
g.drawImage(originalImage, 0, 0, initialWidth, initialHeight, null);
g.dispose();
return resizedImage;
}
me llaman así:
Animation animate = new Animation();
int type = animate.image.getType() == 0? BufferedImage.TYPE_INT_ARGB : animate.image.getType();
BufferedImage newImage;
while(animate.opacity > 0){
newImage = animate.animateCircle(animate.image, type);
g.drawImage(newImage, 400, 350, this);
}
Para una mejor ayuda antes, publique un [SSCCE] (http://sscce.org/). –