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
的其他实现可能包含多个图块,您将使用各种与图块相关的方法来查找每个维度中的图块数量、图块大小等。
什么是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
的其他实现可能包含多个图块,您将使用各种与图块相关的方法来查找每个维度中的图块数量、图块大小等。