Java 中的 Image 和 BufferedImage 之间的区别

2022-09-01 15:15:07

Image 和 BufferedImage 之间有什么区别?

我可以直接从图像源“图像.png”创建缓冲图像吗?


答案 1

如果你熟悉Java的util。List,Image 和 BufferedImage 之间的区别与 List 和 LinkedList 之间的区别相同。

图像是一个通用概念,BufferedImage是通用概念的具体实现;有点像宝马是汽车的品牌。


答案 2

图像是一个抽象类。您无法直接实例化图像。BufferedImage 是一个后代,您可以实例化该后代。因此,如果您了解抽象类和继承,您就会了解何时使用它们。

例如,如果您使用多个 Image 子体,它们将共享一些从 Image 继承的通用属性。

如果你想编写一个函数,将任何一种后代作为参数,你可以这样做:

function myFunction(Image myImage) {
  int i = myImage.getHeight();
  ...
}

然后,您可以通过向它传递 BufferedImage 或 VolatileImage 来调用该函数。

BufferedImage myBufferedImage;
VolatileImage myVolatileImage;
...
myFunction(myVolatileImage);
myFunction(myBufferedImage);

您不会将图像转换为缓冲图像,因为您永远不会有图像。


推荐