Java DataBuffer类的原因是什么?

时间:2014-06-09 19:39:26

标签: java swing awt bufferedimage

当我即将调查Java中BufferedImage类的内部实现时,我遇到了DataBuffer。 DataBuffer最终用于保存空白图像数据,只能使用相关的ColorModelSampleModel实现进行解释。但是,除了事实之外,我不明白DataBuffer的真正目的,即它使用一些读写助手来包装相同类型的数组。

1 个答案:

答案 0 :(得分:1)

DataBuffer是一种抽象,因此BufferedImage不需要知道实际的像素存储。

像素通常存储在数组中,但它可以是单个打包或交错的数组,也可以是单个或多个带状数组。将其与所支持的传输类型数相乘,您将看到需要处理的许多不同情况。将此委托给专门的实现是很有意义的,并避免在BufferedImage本身中了解所有这些不同的类型。

但它根本不必是一个阵列。例如,我已经成功实现了由nio DataBuffer和内存映射文件支持的ByteBuffer