BufferedImage getTile():它是什么,它与 getSubimage() 有何不同

BufferedImage getTile(): what is it, how does it differ from getSubimage()

什么是BufferedImage getTile()?我看到那是 returns 一个 Raster 对象。这是另一种形式的图像或图形对象吗?如果是这样,使用 getTile() 与使用 getSubImage() 有什么优点/缺点?

BufferedImage.getTile(int, int) 方法继承自 RenderedImage interface,并允许您获取特定的图块进行处理。图像中的所有图块都相等,固定,width/height。每个图块通常是一个连续的内存块。相反,getSubImage() 允许您从图像中获取任意区域,而不管后备内存如何。所以这些方法并不是真正可以互换的。它们在 return 完整图像“实时”视图的方式上相似。

然而,对于 BufferedImage 实例,getTile() 方法不是很有用,因为 BufferedImage 被实现为 单个 tile(即 bufferedImage.getTile(0, 0) 以外的任何内容都会抛出 IndexOutOfBoundsException)。如果您知道您正在对 BufferedImage 进行操作,getRaster() 方法是更好的选择,并且效果完全相同。

但是,RenderedImage 的其他实现可能包含多个图块,您将使用各种与图块相关的方法来查找每个维度中的图块数量、图块大小等。