首页 > 其他分享 >jdk 中的 ImageIO 读取失败出现空指针

jdk 中的 ImageIO 读取失败出现空指针

时间:2024-05-22 15:44:42浏览次数:17  
标签:插件 ImageIO 读取 jdk read tiff

 

在java8 及之前版本中,jdk 中的 ImageIO 读取图片内容会失败,解决办法使用 java9 或者使用第三方插件。

插件可以使用 TwelveMonkeys ImageIO,地址:https://github.com/haraldk/TwelveMonkeys

使用方法,在maven中添加依赖

        <dependency>
            <groupId>com.twelvemonkeys.imageio</groupId>
            <artifactId>imageio-tiff</artifactId>
            <version>3.4.1</version>
        </dependency>

 

因为 ImageIO 会自动搜索类路径下继承的接口和子类,因此不需要显示调用。完全无侵入。使用方法和之前的一样,例如,读取tiff的文件

        String filename = "D:\\logs\\temp\\test.tif";
        try {
            BufferedImage bufferedImage = ImageIO.read(FileUtil.getInputStream(filename));
            if (bufferedImage == null) {
                System.out.println("image read null");
            } else {
                System.out.println("read success");
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

  

标签:插件,ImageIO,读取,jdk,read,tiff
From: https://www.cnblogs.com/lewisat/p/18206385

相关文章

  • 通过 adc 实现一个IO对多个按键读取
    如何实现一个IO对多个按键读取(1)当我们需要实现一个IO对多个按键读取的时候,可以采用如下电路,使用IO口的ADC功能,读取电压值,即可知道哪个按键被按下。(2)旁边加上一个10nf的电容,用于按键消抖......
  • Python读取YAML配置数据
    python编写的一些脚本需要一些简单配置时可以使用yaml文件进行设置。本文将介绍如何使用pyyaml进行读取配置数据。首先安装pyyamlpipinstallpyyaml简单使用下pyyaml,比较新的python版本记得要指定Loaderimportyamlcontent_='''typecho:  url:https://www.xtiger......
  • JDK版本 - Major Version
    JavaMajorVersion2266216520651963186217611660155914581357125611551054953852751......
  • centos安装jdk
    安装jdk1.安装准备 1.1检查系统版本 -java-version 1.2检查jdk自带安装包 -rpm-qa|grepjava 1.3卸载jdk -yum-yremovetzdata-java.noarch 1.4如果有就卸载,全部卸载2.开始安装 -通过命令安装jdk#通过命令安装不需要配置环境变量 yumsearchja......
  • centos安装jenkins(已安装docker、jdk)
    安装jenkins1.jinkens安装前置步骤 docker已经安装 jdk已安装(1.8及以上)2.安装jenkins并启动 -拉取jenkins镜像,不能直接拉取官网jenkins版本,否则无法安装插件 dockerpulljenkins/jenkins:2.426.2-lts#需要指定版本,不然拉取的是老版本 -创建挂载目录 mkdir-p/usr......
  • Linux中查看yum安装的jdk位置
    Linux中查看yum安装的jdk位置第一步which指令会在环境变量$PATH设置的目录里查找符合条件的文件。whichjava第二步获取对应的文件/etc/alternatives/java[root@192local]#ls-lr/usr/bin/java第三步ls-lrt/etc/alternatives/java#t:将按照修改时间排序,最新的......
  • 【C#】读取文件反序列化对应类
    ///<summary>///反序列化///</summary>///<paramname="filePath">文件路径</param>///<returns></returns>publicstaticList<T>JsonToList<T>(stringfilePath){stringjsonStr=File.ReadAllText(fi......
  • GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))
    1.GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))@目录1.GoF之代理模式(静态代理+动态代理(JDK动态代理+CGLIB动态代理带有一步一步详细步骤))每博一文案2.代理模式的理解3.静态代理4.动态代理4.1JDK动态代理4.1.1JDK动态代理中(获取到目......
  • JEEVMS仓库管理系统任意文件读取漏洞
    漏洞描述该漏洞由于系统未能正确实施或执行对文件的访问控制权限控制,允许未经授权的用户访问或读取文件,并且应用程序未能对用户输入进行适当验证,攻击者可以构造特殊的输入,如路径遍历攻击读取系统文件内容,导致信息泄露Fofa:body="plug-in/lhgDialog/lhgdialog.min.js?skin=metro......
  • Vue3报错:已声明“upperName”,但从未读取其值。ts-plugin(6133)
    Vue3报错:已声明“upperName”,但从未读取其值。ts-plugin(6133)报错显示:类型“StoreToRefs<Store<"count",{sum:number;name:string;address:string;},{},{increment(value:number):void;}>>”上不存在属性“upperName”。ts-plugin(2339)相关代码:vue文件:con......