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

Java处理TIF图像

仲孙铭
2023-03-14
问题内容

我的问题是,如何才能将.tif文件成功加载到Java中的Image实例中?

现在让我提供更多细节。我已经阅读了很多关于stackoverflow的关于如何在Java中处理/转换TIF图像的线程。我已经尝试了很多stackoverflow建议(我说建议,因为询问的人很少回来再说对他们有用的东西)。我很确定我需要使用Java
Advanced Imaging(JAI)库,但是我不知道如何使用它。现在让我解释一下该项目:

我正在从“处理”草图中获取帧的屏幕,然后使用Xuggler将其编码为视频。在草图中,我使用Processing的save(file
filePath)函数将当前帧保存到文件中。我曾经有过 save(“ img” + i +“。jpg”)
,但是创建jpg时发生的压缩将录制速度减慢到9-10fps,所以我切换了文件扩展名以查看是否可以改变结果,而 save(“ img” + i“
.tif”)
最快,我可以以22-23fps的速度录制。

处理可以将图像另存为.tif文件。但是不幸的是,如果没有库,Java无法将.tif文件加载回去。我以前有代码:
Image img = Toolkit.getDefaultToolkit()。getImage(“ pics / img” + i
+“。jpg”);

该行代码会将.jpg文件加载到img中,我会很好地对视​​频进行编码。但是这行代码(用tif而不是jpg):
Image img = Toolkit.getDefaultToolkit()。getImage(“ pics / img” + i
+“。tif”);

将不会加载任何图像。我仍然可以使用Xuggler对视频进行编码,但是图像为空白,因此我认为此方法无法加载我的.tif文件。

我正在Windows 8计算机上使用Eclipse。任何帮助将不胜感激!


问题答案:

是的,您需要JAI。

  import javax.media.jai.PlanarImage;
  import com.sun.media.jai.codec.ByteArraySeekableStream;
  import com.sun.media.jai.codec.ImageCodec;
  import com.sun.media.jai.codec.ImageDecoder;
  import com.sun.media.jai.codec.SeekableStream;
  import java.awt.Image;
  import java.awt.image.RenderedImage;
...
  static Image load(byte[] data) throws Exception{
    Image image = null;
    SeekableStream stream = new ByteArraySeekableStream(data);
    String[] names = ImageCodec.getDecoderNames(stream);
    ImageDecoder dec = 
      ImageCodec.createImageDecoder(names[0], stream, null);
    RenderedImage im = dec.decodeAsRenderedImage();
    image = PlanarImage.wrapRenderedImage(im).getAsBufferedImage();
    return image;
  }


 类似资料:
  • 问题内容: 谁能建议我如何将.TIF格式的图像存储到该图像并将其添加到列表模型?我试过了,但是给了我。 在这里,我编辑了代码,这是我的错误msg 异常,位于ListImage1.main(ListImage1.java:48)的javax.swing.ImageIcon。(ImageIcon.java:228)的线程“ main”中java.lang.NullPointerException 问题

  • 我正在研究图像加密和解密算法。我想使图像像素失真。我想要得到每一个像素值,然后按我想要的方式排序这些像素值,这样图像的像素被扭曲,图像被改变。我是在朝仪式的方向走吗?有什么提示吗?或者可以帮助我的示例算法。 我有一个像素的图像。表示图像由像素组成。如果我选择图像的第一个像素行,它是像素,我将这些像素转换为二进制,然后转换为十进制。现在我得到10个像素的十进制值。我按我想要的方式对这些值进行排序。现

  • 大多数图像处理和操作技术可以使用两个库进行有效的处理:Python Imaging Library (PIL) 和 OpenSource Computer Vision (OpenCV)。 下面来简单介绍一下这两个库。 Python 图像库 Python 图像库, 全称为 Python Imaging Library,简称PIL,是Python图像操作的核心库之一。遗憾的是,PIL 的开发工作已经

  • Tensorflow封装了很多图像处理的操作,包括读取图像、图像处理、写图像到文件等等。在批量处理图像时,Tensorflow要求所有的图像都要有相同的Size,即$$(height,width,channels)$$。 读取图像 %matplotlib inline import tensorflow as tf import numpy as np #mil.use('svg') mil.us

  • 安装扩展 使用Composer安装ThinkPHP5的图像处理类库: composer require topthink/think-image 图像操作 下面来看下图像操作类的基础方法。 打开图像文件 假设当前入口文件目录下面有一个image.png文件,如图所示: 使用open方法打开图像文件进行相关操作: $image = \think\Image::open('./image.png');

  • 我在试着读书。tiff图像。我知道我不能阅读ImageIO提供的tiff文件。阅读并了解JAI API的支持。tiff图片,但我不会使用JAI API。那么JAI API还有其他选择吗?我在哪里可以买到JAI API?