java中处理tiff格式文件

添加依赖

 <dependency><groupId>com.github.jai-imageio</groupId><artifactId>jai-imageio-core</artifactId><version>1.4.0</version>
</dependency><dependency><groupId>com.drewnoakes</groupId><artifactId>metadata-extractor</artifactId><version>2.8.1</version>
</dependency>

判断tiff格式工具类

public static boolean checkImageBase64Format(String filePath) {byte[] data = null;try {InputStream in = new FileInputStream(filePath);data = new byte[in.available()];in.read(data);in.close();byte[] b = java.util.Base64.getDecoder().decode(new String(Base64.encodeBase64(data)));//     判断是否为tiff格式if ((b[0] & 0xFF) == 0x49 && (b[1] & 0xFF) == 0x49 && (b[2] & 0xFF) == 0x2A) {return true;} else {return false;}} catch (Exception e) {e.printStackTrace();return false;}
}

转换为其他格式图片

public static void tiffToJpg(String oldPath, String newPath) {try {BufferedImage bufferegImage = ImageIO.read(new File(oldPath));ImageIO.write(bufferegImage, "png", new File(newPath));} catch (IOException e) {e.printStackTrace();}
}

必须要添加 jai-imageio-core 依赖

不添加该依赖ImageIO.read()方法无法读取tiff格式图片信息

String[] writerFileSuffixes = ImageIO.getWriterFileSuffixes();
该原生方法只支持jpg,bmp,gif,png,jpeg,wbmp格式添加依赖后则支持jpg,tiff,pcx,bmp,gif,png,raw,ppm,tif,pgm,wbmp,jpeg,pbm

Tiff格式详细信息读取方法

File file = new File(filePath);
Metadata metadata = TiffMetadataReader.readMetadata(file);
if (null != metadata.getDirectories()) {Iterable<Directory> a = metadata.getDirectories();for (Directory directory : a) {Iterator<Tag> tag = directory.getTags().iterator();while (tag.hasNext()) {Tag tagInfo = tag.next();if ("Image Width".equals(tagInfo.getTagName())) {result.put("width", Long.valueOf(tagInfo.getDescription().substring(0, (tagInfo.getDescription().lastIndexOf("pixels") - 1))));} else if ("Image Height".equals(tagInfo.getTagName())) {result.put("height", Long.valueOf(tagInfo.getDescription().substring(0, (tagInfo.getDescription().lastIndexOf("pixels") - 1))));}}}
}

Java中处理tiff文件相关推荐

  1. Java中 实现通过文件夹选择任一图像,从而进行图像卷积操作

    ** Java中 实现通过文件夹选择任一图像,从而进行图像卷积操作 ** 之前的那篇关于图像卷积的博客(Java中实现图像的卷积效果),只是讲了给定一张图片,从而实现图片的卷积操作:而现在,需要去实现 ...

  2. 在java中删除某个文件

    代码: public static void main(String[] args) {File file = new File("D:\\face0713\\fi"+key+&q ...

  3. Java中如何读取文件夹下的所有文件

    问题:Java中如何读取文件夹下的所有文件 Java里面是如何读取一个文件夹下的所有文件的? 回答一 public void listFilesForFolder(final File folder) ...

  4. JAVA中.jsp模板文件AJAX异步请求 - 数据渲染问题

    JAVA中.jsp模板文件AJAX异步请求 - 数据渲染失败,谁的过失? 后端已经查询出来结果,但是返回的API接口response查看不到对应的信息.(即:后台有,前台没有) 原因分析: 是因为AJ ...

  5. 关于Java中对于jsp文件的浅认识

    jsp文件可以作为java的模板页面?yes! 前端写好的HTML静态文件,后台的Java人员可以改为jsp文件,从而作为模板页面进行嵌套. 在项目中,或多或少的和java工程师有过一定的技术交流,发 ...

  6. 【java】java中内存映射文件和IO

    转载:https://leokongwq.github.io/2017/02/25/java-memorymapped-file-and-io.html 对大多数Java开发人员来说,Java中的内存 ...

  7. Java中的properties文件中的key不能使用项目中的接口名和Java文件名

    Java中的properties文件中的key不能使用项目中的接口名和Java文件名,否则在反射生成实体类的时候会出现报错的情况.

  8. matlab分析xml文件_如何在Java中读取XML文件(DOM分析器)

    matlab分析xml文件 Today we will learn how to read the XML file in Java. We will also learn how to parse ...

  9. java读取csv文件_使用扫描仪读取Java中的CSV文件

    java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...

  10. matlab分析xml文件_修改Java中的XML文件(DOM分析器)

    matlab分析xml文件 We can modify XML file in Java using DOM parser. We can add elements, remove elements, ...

最新文章

  1. nvGRAPH API参考分析(一)
  2. bat 将war文件转换成ear文件
  3. Android之自定义一个环形进度控件
  4. 【响应式Web前端设计】css如何设置边框的圆角样式?border-radius属性设置圆角样式(图 文)
  5. js使字体最大且不超过文本框
  6. mac 源生安装mysql_docker安装MySQL数据库
  7. git常见命令 的区分
  8. 1026. 程序运行时间(15)
  9. Kindle Collection编辑器
  10. 10.java之父被B站学习者下载达7000万次的Java视频教程你还没有看过知乎
  11. xx是一个类型 这在给定的上下文_#PaperCarrier | CoSeRNN :为你解释序列化与上下文在会话推荐中的作用...
  12. c 语言百度翻译软件,百度翻译api 实现简易微信翻译小程序
  13. 安装VMware出现Error 1406:could not write value installpath to key的解决办法
  14. qurlinfo在qt5中_QT5编译使用QFtp的方法步骤
  15. python 模拟键盘自动打字敲英语文章
  16. oracle 物料属性批次过期,系列之五:ORACLE EBS 系统主数据管理(C)
  17. 不刷新页面更新内容的方法
  18. C语言结构体作为形参
  19. 取消Outlook脱机工作
  20. Andrew Ng-机器学习基础笔记(下)-Python实现代码

热门文章

  1. 如何用C语言实现【简易关机程序】
  2. 【蓝桥杯】第八届java A组题详解
  3. Google退出中国
  4. swing宾馆客房管理系统(文档)
  5. VS下使用多字符集编码和Unicode字符集编码的总结
  6. 大航海时代2 全村落 探索 MD ROM 静态 HACKER
  7. 【python】自动发送微信消息或文件
  8. Idea2021激活码
  9. kali-扫描主机-Nmap
  10. 导入数据java生成逆向sql,用于回滚,你试过吗?