【发布时间】:2014-07-30 10:19:21
【问题描述】:
当我准备研究Java中BufferedImage类的内部实现时,我遇到了DataBuffer。 DataBuffer 最终用于保存空白图像数据,只能通过相关的ColorModel 和SampleModel 实现来解释。但是,我不明白 DataBuffer 的真正用途,除了它用一些读写助手包装相同类型的数组。
【问题讨论】:
标签: java swing awt bufferedimage
当我准备研究Java中BufferedImage类的内部实现时,我遇到了DataBuffer。 DataBuffer 最终用于保存空白图像数据,只能通过相关的ColorModel 和SampleModel 实现来解释。但是,我不明白 DataBuffer 的真正用途,除了它用一些读写助手包装相同类型的数组。
【问题讨论】:
标签: java swing awt bufferedimage
DataBuffer 是一个抽象,因此BufferedImage 不需要了解实际的像素存储。
像素通常存储在数组中,但它可以是单个打包或交错数组,也可以是单个或多个带状数组。将其与支持的传输类型的数量相乘,您会发现有很多不同的情况需要处理。将其委托给专门的实现是很有意义的,并且避免了解 BufferedImage 本身中的所有这些不同类型。
但它甚至不必是一个数组。例如,我已经成功实现了由 nio ByteBuffers 和内存映射文件支持的 DataBuffers。
【讨论】: