当前位置: 首页 > 面试题库 >

将RenderedImage转换为BufferedImage以进行多页tiff阅读

都超英
2023-03-14
问题内容

我正在使用JAI加载多页TIFF图像

File file = workArea[0];
SeekableStream s = new FileSeekableStream(file);

TIFFDecodeParam param = null;

ImageDecoder dec = ImageCodec.createImageDecoder("tiff", s, param);

//first page
RenderedImage op1 =
    new NullOpImage(dec.decodeAsRenderedImage(0),
                    null,
                    OpImage.OP_IO_BOUND,
                    null);

BufferedImage pg1 = new BufferedImage(op1.getWidth(), op1.getHeight(),
                                      BufferedImage.TYPE_INT_RGB);
pg1.getGraphics().drawImage((Image) op1, 0, 0, null);

但是,在最后一行中,我得到了一个运行时错误:

 Exception in thread "main" java.lang.ClassCastException: 
      javax.media.jai.MullOpImage cannot be cast to java.awt.Image

在尝试设置BufferedImage之后,我清除了RenderedImage,因此,如果存在另一种方法,则我不必完全“需要” RenderedImage。

我尝试过:

 pg1.setData(op1.getData());

这给出了ArrayIndexOutOfBoundsException。我不确定为什么op1会精确设置pg1的宽度和高度,但是可能有一个非常合理的理由。


问题答案:

使用op1。getAsBufferedImage()创建pg1。



 类似资料:
  • 问题内容: 我一直在尝试将a转换为…而且我没有运气。 我有一个预先存在的ImageIcon,对于存在的大量BufferedImage操作,需要将其转换为Buffered Image。 我发现了几种方法,但是所有方法都占用大量CPU。 问题答案: 有什么问题:

  • 问题内容: 我有一个图像文件的Data-URL,必须将其传递给另一个函数。从Data-URL到BufferedImage的路径必须是一个byteArray。 我的方法如下: 问题是,它总是抛出UnknownImageFormatException异常,这意味着inputImage为null,这意味着ImageIO.read无法识别图像类型。 我使用ImageIO.getReaderFormatNa

  • 问题内容: 我正在寻找将JPEG文件流转换为TIFF文件的Java API。我查看了JAI,但未找到与我正在查看的内容类似的内容。 有人可以指出我要这样做的一个好的API吗? 问题答案: 这里有一个例子 http://log.robmeek.com/2005/08/write-tiff-in- java.html

  • 问题内容: 在StackOverflow上已经存在类似此链接的问题,并且可接受的答案是“广播”: 在我的程序中,我尝试: 不幸的是,我得到运行时错误: sun.awt.image.ToolkitImage无法转换为java.awt.image.BufferedImage 显然,投射不起作用。 问题是:将Image转换为BufferedImage的正确方法是(或存在)什么? 问题答案: 从Java游

  • 问题内容: 我正在使用servlet上传图像。为了执行调整大小的操作,我将InputStream转换为BufferedImage。现在我想将其保存在mongoDB中。因为据我所知,我是mongoDB的新手,所以GridFS采用InputStream。 那么,有什么方法可以将BufferedImage转换为InputStream吗? 问题答案: 您需要使用该类将BufferedImage保存为,然后

  • 问题内容: 我有一台保存TIFF图像的服务器。大多数客户端可以读取和显示TIFF图像,因此没有问题。但是,某些客户端无法处理此格式,但可以处理JPG。我想到了使用PHP的GD库为没有TIFF阅读能力的客户端进行服务器端转换。但是我注意到GD也无法读取TIFF文件。 Imagick无法在Windows中工作,我的想法是创建一个imageFetcher.php,它将获取客户端所需的实际图像作为参数。它