Java将图像转换为BufferedImage


Image image = ImageIO.read(new File(file));

BufferedImage buffered = (BufferedImage) image;

在我的程序中,我尝试:


final float FACTOR  = 4f;

BufferedImage img = ImageIO.read(new File("graphic.png"));

int scaleX = (int) (img.getWidth() * FACTOR);

int scaleY = (int) (img.getHeight() * FACTOR);

Image image = img.getScaledInstance(scaleX, scaleY, Image.SCALE_SMOOTH);

BufferedImage buffered = (BufferedImage) image;

不幸的是,我得到运行时错误:


sun.awt.image.ToolkitImage无法转换为java.awt.image.BufferedImage


显然,投射不起作用。

问题是:将Image转换为BufferedImage的正确方法是(或存在)什么?


繁星点点滴滴
浏览 3842回答 3
3回答

缥缈止盈

从Java游戏引擎:/** * Converts a given Image into a BufferedImage * * @param img The Image to be converted * @return The converted BufferedImage */public static BufferedImage toBufferedImage(Image img){    if (img instanceof BufferedImage)    {        return (BufferedImage) img;    }    // Create a buffered image with transparency    BufferedImage bimage = new BufferedImage(img.getWidth(null), img.getHeight(null), BufferedImage.TYPE_INT_ARGB);    // Draw the image on to the buffered image    Graphics2D bGr = bimage.createGraphics();    bGr.drawImage(img, 0, 0, null);    bGr.dispose();    // Return the buffered image    return bimage;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java