使用所提供的 imagereadparam 读取通过索引 imageindex 指定的图像,并返回包含图像、缩略图和相关图像元数据的 iioimage。
由返回的 iioimage 实际引用的 bufferedimage 将使用 getdestination 方法定义的算法来选择。
所有已注册的 iioreadprogresslistener 对象将通过以下方式获得通知:首先调用其 imagestarted 方法,然后在读取过程中调用其 imageprogress 方法。最后,将调用其 imagecomplete 方法。解码像素时,iioreadupdatelistener 对象可以在读取期间的其他时间更新。最后,iioreadwarninglistener 对象将接收解码期间发生的所有非致命警告。
要读取的源 band 和要写入的目标 band 的集合通过在所提供的 imagereadparam 上调用 getsourcebands 和 getdestinationbands 确定。如果这些方法返回的数组的长度不同、源 band 集合包含一个比最大可用源索引更大的索引,或者目标 band 集合包含一个比最大的合法目标索引更大的索引,则抛出 illegalargumentexception。
无论怎样设置区域,缩略图都将以其完整形式返回。
如果所提供的 imagereadparam 包含不受此 reader 支持的可选设置值(例如 源呈现大小或任何特定于格式的设置),则将忽略这些设置。
- 参数:
imageindex - 将被获取的图像的索引。param - 用来控制读取过程的 imagereadparam,或者为 null。
- 返回:
- 一个
iioimage,包含所需图像部分、一个缩略图集合和关联的图像元数据。
- 抛出:
illegalstateexception - 如果尚未设置输入源。
indexoutofboundsexception - 如果所提供的索引超出范围。
illegalargumentexception - 如果由 param.getsourcebands 和 param.getdestinationbands 指定的源 band 和目标 band 的集合在长度上不同,或者包含超出范围的索引。
illegalargumentexception - 如果所得图像的宽度或高度小于 1。
ioexception - 如果读取期间发生错误。