Java中处理tiff文件
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文件相关推荐
- Java中 实现通过文件夹选择任一图像,从而进行图像卷积操作
** Java中 实现通过文件夹选择任一图像,从而进行图像卷积操作 ** 之前的那篇关于图像卷积的博客(Java中实现图像的卷积效果),只是讲了给定一张图片,从而实现图片的卷积操作:而现在,需要去实现 ...
- 在java中删除某个文件
代码: public static void main(String[] args) {File file = new File("D:\\face0713\\fi"+key+&q ...
- Java中如何读取文件夹下的所有文件
问题:Java中如何读取文件夹下的所有文件 Java里面是如何读取一个文件夹下的所有文件的? 回答一 public void listFilesForFolder(final File folder) ...
- JAVA中.jsp模板文件AJAX异步请求 - 数据渲染问题
JAVA中.jsp模板文件AJAX异步请求 - 数据渲染失败,谁的过失? 后端已经查询出来结果,但是返回的API接口response查看不到对应的信息.(即:后台有,前台没有) 原因分析: 是因为AJ ...
- 关于Java中对于jsp文件的浅认识
jsp文件可以作为java的模板页面?yes! 前端写好的HTML静态文件,后台的Java人员可以改为jsp文件,从而作为模板页面进行嵌套. 在项目中,或多或少的和java工程师有过一定的技术交流,发 ...
- 【java】java中内存映射文件和IO
转载:https://leokongwq.github.io/2017/02/25/java-memorymapped-file-and-io.html 对大多数Java开发人员来说,Java中的内存 ...
- Java中的properties文件中的key不能使用项目中的接口名和Java文件名
Java中的properties文件中的key不能使用项目中的接口名和Java文件名,否则在反射生成实体类的时候会出现报错的情况.
- 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 ...
- java读取csv文件_使用扫描仪读取Java中的CSV文件
java读取csv文件 We can use Java Scanner Class to read CSV File in java. 我们可以使用Java扫描程序类在Java中读取CSV文件. 读取 ...
- matlab分析xml文件_修改Java中的XML文件(DOM分析器)
matlab分析xml文件 We can modify XML file in Java using DOM parser. We can add elements, remove elements, ...
最新文章
- nvGRAPH API参考分析(一)
- bat 将war文件转换成ear文件
- Android之自定义一个环形进度控件
- 【响应式Web前端设计】css如何设置边框的圆角样式?border-radius属性设置圆角样式(图 文)
- js使字体最大且不超过文本框
- mac 源生安装mysql_docker安装MySQL数据库
- git常见命令 的区分
- 1026. 程序运行时间(15)
- Kindle Collection编辑器
- 10.java之父被B站学习者下载达7000万次的Java视频教程你还没有看过知乎
- xx是一个类型 这在给定的上下文_#PaperCarrier | CoSeRNN :为你解释序列化与上下文在会话推荐中的作用...
- c 语言百度翻译软件,百度翻译api 实现简易微信翻译小程序
- 安装VMware出现Error 1406:could not write value installpath to key的解决办法
- qurlinfo在qt5中_QT5编译使用QFtp的方法步骤
- python 模拟键盘自动打字敲英语文章
- oracle 物料属性批次过期,系列之五:ORACLE EBS 系统主数据管理(C)
- 不刷新页面更新内容的方法
- C语言结构体作为形参
- 取消Outlook脱机工作
- Andrew Ng-机器学习基础笔记(下)-Python实现代码