BufferedImage 怎么包装image
时间: 2023-08-25 11:33:06 浏览: 80
可以使用 Graphics2D 对象来将 Image 包装成 BufferedImage。下面是示例代码:
```java
import java.awt.*;
import java.awt.image.BufferedImage;
import javax.swing.*;
public class ImageToBufferedImage extends JFrame {
private BufferedImage bufferedImage;
public ImageToBufferedImage(Image image) {
super("Image to BufferedImage");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(400, 400);
setLocationRelativeTo(null);
// 创建一个与 Image 大小一致的 BufferedImage
bufferedImage = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_ARGB);
// 使用 Graphics2D 对象绘制 Image 到 BufferedImage 上
Graphics2D g2d = bufferedImage.createGraphics();
g2d.drawImage(image, 0, 0, null);
g2d.dispose();
setVisible(true);
}
@Override
public void paint(Graphics g) {
// 将绘制好的 BufferedImage 绘制到 JFrame 上
if (bufferedImage != null) {
g.drawImage(bufferedImage, 0, 0, null);
}
}
public static void main(String[] args) {
Image image = new ImageIcon("image.png").getImage();
new ImageToBufferedImage(image);
}
}
```
在这个示例代码中,我们在构造函数中创建了一个与 Image 大小一致的 BufferedImage,并使用 Graphics2D 对象 g2d 将 Image 绘制到 BufferedImage 上。然后在 paint() 方法中,将绘制好的 BufferedImage 绘制到 JFrame 上。
阅读全文