为了账号安全,请及时绑定邮箱和手机立即绑定

Java将图像转换为BufferedImage

Java将图像转换为BufferedImage

繁星点点滴滴 2019-11-13 16:10:24
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的正确方法是(或存在)什么?
查看完整描述

3 回答

?
缥缈止盈

TA贡献2041条经验 获得超4个赞

从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;

}


查看完整回答
反对 回复 2019-11-13
  • 3 回答
  • 0 关注
  • 3828 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信