- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 JAI 读取 java 中的 Tiff 文件。使用此代码:
RenderedOp renderer = JAI.create("fileload", tifFilename);
return renderer.getAsBufferedImage();
在一个使用 java 7 的机器上工作正常,但在其他使用 java 8 的机器上工作正常,得到这个:
Caused by: com.sun.media.jai.codecimpl.util.ImagingException
at com.sun.media.jai.codecimpl.ImagingListenerProxy.errorOccurred(ImagingListenerProxy.java:63)
at com.sun.media.jai.codecimpl.TIFFImage.getTile(TIFFImage.java:1087)
at javax.media.jai.RenderedImageAdapter.getTile(RenderedImageAdapter.java:148)
at javax.media.jai.NullOpImage.computeTile(NullOpImage.java:162)
at com.sun.media.jai.util.SunTileScheduler.scheduleTile(SunTileScheduler.java:904)
at javax.media.jai.OpImage.getTile(OpImage.java:1129)
at javax.media.jai.PlanarImage.copyData(PlanarImage.java:2343)
at javax.media.jai.RenderedImageAdapter.copyData(RenderedImageAdapter.java:163)
at javax.media.jai.RenderedOp.copyData(RenderedOp.java:2299)
at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2525)
at javax.media.jai.PlanarImage.getAsBufferedImage(PlanarImage.java:2546)
at ...
Caused by: com.sun.media.jai.codecimpl.util.ImagingException: IOException occured while reading TIFF image data.
... 17 more
Caused by: java.io.IOException: Stream Closed
at java.io.RandomAccessFile.seek0(Native Method)
at java.io.RandomAccessFile.seek(RandomAccessFile.java:557)
at com.sun.media.jai.codec.FileSeekableStream.read(FileSeekableStream.java:168)
at com.sun.media.jai.codec.SeekableStream.readFully(SeekableStream.java:318)
at com.sun.media.jai.codecimpl.TIFFImage.getTile(TIFFImage.java:1081)
... 16 more
最佳答案
我的理论是,垃圾收集正在启动并完成一些不应该完成的事情。很奇怪。将其替换为:
try (SeekableStream seekableStream = new FileSeekableStream(filename)){
TIFFDecodeParam param = null;
ImageDecoder dec = ImageCodec.createImageDecoder("tiff", seekableStream, param);
// convert to buffered image if desired
return new RenderedImageAdapter(dec.decodeAsRenderedImage()).getAsBufferedImage(); // convert to buffered image
}
问题似乎就消失了。我的猜测是因为 FileSeekableStream s
没有被过早收集,因为它的句柄保留在本地变量范围内。可能还有其他 JAI 方法可以做到这一点,只需确保在输入流上保留您自己的句柄 [?]
相关(帮助我发现了这个解决办法:RenderedImage to BufferedImage for multipage-tiff reading)
还有JAI create seems to leave file descriptors open
不确定是否也适用于其他图像格式
关于java - JAI 关闭文件句柄是否为时过早?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38444752/
我在我的应用程序中使用了 jai(Java Advance Imaging)。 当我使用 jai 设置时,我觉得我的图像处理速度更快,但它需要在用户计算机上安装这些设置。 当我使用 Jai 的 Jar
我正在尝试使用 javax.media.jai.JAI 读取 .tif 图像。这是我的代码: import javax.media.jai.JAI; import javax.media.jai.Re
JAI 的 FileLoad/FileStore 操作和 ImageRead/ImageWrite 操作有什么区别? 其中一套在任何方面都比另一套更好吗?哪些应该用作默认值? 最佳答案 FileLoa
我最近使用 GeoTools 开始了我的第一个程序,其中我还使用了 JAI-Java Advanced Imaging 1_1_2_01 和 JDK 1_7。 在我添加 GeoTiff Jars 之前
我正在使用 JAI 读取 java 中的 Tiff 文件。使用此代码: RenderedOp renderer = JAI.create("fileload", tifFilename); retur
我想知道是否有人有让 JAI 从多个平台的小程序自动安装的经验。我看过 http://java.sun.com/j2se/1.4.2/docs/guide/plugin/developer_guide
我正在使用 JAI 库对一系列图像进行调整,每个图像的大小约为 1300x1000。我使用“Rescale”调整像素强度,并使用 TiledImage.createGraphics() 方法中的 Gr
我正在此处查看现有的 Java CT 图像 显示程序。我尝试了解查找表在JAI中的工作原理。 来自JAI guide, section 7.6 ,我读到了这个: 输入像素值充当查找表输入的地址。查找表
我尝试保存 tiff 而不是彩色灰度。我怎么能这样做? (必须使用JAI,因为它是tiff!) 提前致谢并致以最诚挚的问候。 最佳答案 你想要的是下载 JAI Image I/O Tools ,它为
本文整理了Java中javax.media.jai.WarpPolynomial类的一些代码示例,展示了WarpPolynomial类的具体用法。这些代码示例主要来源于Github/Stackover
本文整理了Java中javax.media.jai.WarpAffine类的一些代码示例,展示了WarpAffine类的具体用法。这些代码示例主要来源于Github/Stackoverflow/Mav
我已经读取了相当大的图像(jpeg)的应用程序,但只需要处理较小的图像,因此我使用类似的东西对它们进行子采样 ImageReadParam param = reader.getDefaultReadP
我正在尝试使用 JAI 创建一个由 4 个 TIF 图像组成的马赛克,每个图像的尺寸为 5000 x 5000。我编写的代码如下.. RenderedOp mosaic=null; P
我正在尝试使用 GeoTIFF-jai 库在 Java 中生成经过地理校正的光栅图像。我尝试在 SourceForge 网站上查找有关如何执行此操作的文档,但 SourceForge 说“不幸的是,该
JAI ImageIO-core 附带一组 native 编解码器。编解码器捆绑在一组 .so 和 .dll 文件中。主要是clib_jiio.dll clib_jiio_sse2.dll clib_
我正在尝试将多个图像串联成一个,但遇到了问题。为了隔离这个问题,我创建了以下 POC,我正在尝试解决该问题,以便了解如何使用 JAI API。 在 POC 中,我有两个图像“image1.gif”和“
我正在使用 JAI 向图像添加“边框”。例如 ParameterBlock pb = new ParameterBlock(); pb.addSource(r); pb.add(leftPad); p
我一直在使用 JAI 来写入和读取 TIFF 图像,但我最近在编码灰度图像时遇到了一个问题,我在每个 strip 的末尾得到 7 个黑色 (0) 像素 (8每条线数): 只有在使用下面的 SSCE 将
我想开发具有大量图像处理功能的程序。我想使用 Java 和 JAI,但在我看来,Jai 已经老了,不再进化了? ( http://java.sun.com/javase/technologies/de
就目前情况而言,这个问题不太适合我们的问答形式。我们希望答案得到事实、引用资料或专业知识的支持,但这个问题可能会引发辩论、争论、民意调查或扩展讨论。如果您觉得这个问题可以改进并可能重新开放,visit
我是一名优秀的程序员,十分优秀!