Java 中的 Image 和 BufferedImage 之间的区别
2022-09-01 15:15:07
Image 和 BufferedImage 之间有什么区别?
我可以直接从图像源“图像.png”创建缓冲图像吗?
Image 和 BufferedImage 之间有什么区别?
我可以直接从图像源“图像.png”创建缓冲图像吗?
如果你熟悉Java的util。List,Image 和 BufferedImage 之间的区别与 List 和 LinkedList 之间的区别相同。
图像是一个通用概念,BufferedImage是通用概念的具体实现;有点像宝马是汽车的品牌。
图像是一个抽象类。您无法直接实例化图像。BufferedImage 是一个后代,您可以实例化该后代。因此,如果您了解抽象类和继承,您就会了解何时使用它们。
例如,如果您使用多个 Image 子体,它们将共享一些从 Image 继承的通用属性。
如果你想编写一个函数,将任何一种后代作为参数,你可以这样做:
function myFunction(Image myImage) {
int i = myImage.getHeight();
...
}
然后,您可以通过向它传递 BufferedImage 或 VolatileImage 来调用该函数。
BufferedImage myBufferedImage;
VolatileImage myVolatileImage;
...
myFunction(myVolatileImage);
myFunction(myBufferedImage);
您不会将图像转换为缓冲图像,因为您永远不会有图像。