Hoy os voy a mostrar una clase que contiene varios métodos para transformar objetos de tipo BufferedImage, Image, ImageIcon e Icon entre ellos. Sin más comentarios, os dejo el código.
import java.awt.Graphics2D;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
import java.awt.image.BufferedImage;
import javax.swing.Icon;
import javax.swing.ImageIcon;
/**
*
* @author Luis Marcos
*/
public class ImageProcessing_TransformFormatImages{
public Image bufferedImageToImage(BufferedImage bufferImage){
Image imgReturn = (Image)bufferImage;
return imgReturn;
}
public ImageIcon bufferedImageToImageIcon(BufferedImage bufferImage){
ImageIcon imgIconReturn = new ImageIcon(bufferImage);
return imgIconReturn;
}
public Icon bufferedImageToIcon(BufferedImage bufferImage){
ImageIcon imgIcon=new ImageIcon(bufferImage);
Icon iconReturn = (Icon)(imgIcon);
return iconReturn;
}
public BufferedImage iconToBufferedImage(Icon icon){
BufferedImage bufferImage=(BufferedImage)this.iconToImage(icon);
return bufferImage;
}
/**
* Converts a Icon in a Image https://groups.google.com/forum/#!topic/comp.lang.java.programmer/OI_IdebPL68
* @param icon Icon is going to be transformed
* @return returns an Image from a Icon
*/
public Image iconToImage(Icon icon) {
if (icon instanceof ImageIcon) {
return ((ImageIcon)icon).getImage();
} else {
int w = icon.getIconWidth();
int h = icon.getIconHeight();
GraphicsEnvironment ge =
GraphicsEnvironment.getLocalGraphicsEnvironment();
GraphicsDevice gd = ge.getDefaultScreenDevice();
GraphicsConfiguration gc = gd.getDefaultConfiguration();
BufferedImage image = gc.createCompatibleImage(w, h);
Graphics2D g = image.createGraphics();
icon.paintIcon(null, g, 0, 0);
g.dispose();
return image;
}
}
public ImageIcon iconToImageIcon(Icon icon){
ImageIcon imageIconRetur=new ImageIcon(this.iconToImage(icon));
return imageIconRetur;
}
public BufferedImage imageToBufferedImage(Image image){
BufferedImage bufferReturn=(BufferedImage)image;
return bufferReturn;
}
public ImageIcon imageToImageIcon(Image image){
ImageIcon imageIconReturn=new ImageIcon(image);
return imageIconReturn;
}
public Icon imageToIcon(Image image){
ImageIcon imgIcon=new ImageIcon(image);
Icon iconReturn=(Icon)imgIcon;
return iconReturn;
}
public BufferedImage imageIconToBufferedImage(ImageIcon imageIcon){
BufferedImage bufferReturn=(BufferedImage)((Image)imageIcon.getImage());
return bufferReturn;
}
public Image imageIconToImage(ImageIcon imageIcon){
Image imgReturn=(Image)imageIcon.getImage();
return imgReturn;
}
public Icon imageIconToIcon(ImageIcon imageIcon){
Icon iconReturn=(Icon)imageIcon;
return iconReturn;
}
}
Si alguna función falla (en principio creo que no), podéis indicarlo en los comentarios.
¡Saludos!
Muchas gracias me fue muy útil la conversión de ImageIcon a Image
ResponderEliminarSe te agradece tu Aportacion =D
ResponderEliminarMuchas Gracias por compartirlo, en verdad me ha ayudado muchísimo.
ResponderEliminarSaludos y Bendiciones.
no funciona public Image bufferedImageToImage(BufferedImage bufferImage){
ResponderEliminarImage imgReturn = (Image)bufferImage;
return imgReturn;
}
no funciona public Image bufferedImageToImage(BufferedImage bufferImage){
ResponderEliminarImage imgReturn = (Image)bufferImage;
return imgReturn;
}