Java获取图片文件格式(后缀)
今天做一个爬虫,使用正则匹配到<img>
标签以后,直接用InputStream
流进行下载到内存,然后再使用FileOutputStream
保存到硬盘,但是要获取图片文件格式再进行保存。
一开始使用了正则截取,比如<img src="/book/en/v2/images/basic-branching-1.png" />
,就直接用字符串截取.png
的内容
String imgSrc = "/book/en/v2/images/basic-branching-1.png";String formatName = imgSrc.split("\\.")[1];
但是后来突然想到如果URL的path里就带有 .
那怎么办(虽然我没见到过)
假设一个图片标签 <img src="/book/en/v2/.hahaha/basic-branching-1.png" />
,那这样就不能保证是截取到后缀。
想到PHP和Python都有直接处理图片的库,很方便,Java应该也有这种操作吧。
经过去StackOverflow查找一番,发现确实Java这种操作很麻烦,所以自己实现了一个工具方法。
public static List<String> getImageFormat(InputStream srcInputStream) throws IOException {List<String> formatNameList = new ArrayList<>();// 获取ImageInputStream 对象ImageInputStream imageInputStream = ImageIO.createImageInputStream(srcInputStream);// 获取ImageReader对象的迭代器Iterator<ImageReader> iterator = ImageIO.getImageReaders(imageInputStream);// 如果能获得ImageReader对象则说明流中含有图片文件while(iterator.hasNext()) {// ImageReader对象的getFormatName()方法可以获得图片格式formatNameList.add(iterator.next().getFormatName());}return formatNameList;}
这样我们就能从连续的图片文件流中获取多个图片文件,实现获取文件真实格式到的后缀。
Java获取图片文件格式(后缀)相关推荐
- JAVA获取图片的宽、高和大小
JAVA获取图片的宽.高.大小 如果是本地磁盘文件 File file = new File("C:\\Users\\root\\Desktop\\test.jpg");Buffe ...
- java获取图片的长宽尺寸(毫米)
java获取图片的长宽尺寸(毫米) 现在有个需求是附上 附件图片,同时要标注图片的一些属性,比较麻烦的要标识图片的长宽尺寸(毫米),网上找了半天都是获取图片的长宽像素,但是想了想 图片的长宽尺寸不应该 ...
- java 图片宽高_[Java]获取图片高和宽
通过javax.imageio.ImageIO类中的read()函数读取的图片,存放在类java.awt.image.BufferedImage类中.调用BufferedImage类中的getWidt ...
- java获取图片的大小和尺寸(本地 服务器)
java获取图片的大小和尺寸,有两种获取的源,一种是读取本地的图片获取大小和尺寸,一种是通过服务器上图片的地址获取图片的尺寸!下面整理出这两种方式的简易代码,希望帮助的大家和自己! 我使用的Juint ...
- java 获取图片的宽高
博客引用处(以下内容在原有博客基础上进行补充或更改,谢谢这些大牛的博客指导): 通过java获取图片的宽高 获取本地文件的图片尺寸: import java.awt.image.BufferedIma ...
- Java获取图片||图标
一:java获取图标 图标:大小小,不占大部分内存,用于Swing组件类,按键旁,表格里,加以修饰形容,达到使得界面更美观的效果 public static Icon getIcon(String n ...
- Java获取图片的RGB值(数字图像处理)
Java获取图片的RGB值(数字图像处理) 一:简介 RGB即是代表红.绿.蓝三个通道的颜色.我们知道大多数的颜色都是由这3种颜色所组成,下面我们将演示使用Java获取到图片中的RGB值,并且输出: ...
- Java获取图片RGB值
前言 图片对比获取坐标的方法很多,我选择了比较简单的方法:对比rgb值.要想对比rgb值,就得先获取图片的rgb值.运用的是BufferedImage里的getRGNB方法. 解决方案 首先用.get ...
- Java获取图片属性(长,宽,大小,类型。。)/ EXIF
获取图片属性(长,宽,大小,类型..)/ EXIF 注:在遇到大的图片或者并发操作时,第一种方法可能会造成内存泄漏,cpu飙高等问题,建议使用第二种: 1.通过java自带的流操作: @Testpub ...
- java 获取图片的媒体属性,以大疆无人机照片为例
<!--依赖的工具类--> <dependency><groupId>com.drewnoakes</groupId><artifactId> ...
最新文章
- 编程能力差,90%输在了这点上!CTO:这样学编程 ,更容易成为高手
- 怎样实现企业管理系统的操作日志功能
- 【SeaJS】【3】seajs.data相关的源码阅读
- VS中的路径宏 vc++中OutDir、ProjectDir、SolutionDir各种路径
- 2021-10-09 求二叉树的高度(递归和迭代版本)
- Mybatis sql注入问题
- 部署OCS后修改web farm地址
- Leaflet文档阅读笔记- Showing video files解析
- 微信们正在成为“被模仿者”!中国互联网现状及趋势报告
- LeetCode-124.二叉树中的最大路径和
- centos Linux 上 怎么命令行安装和卸载QQ
- 渲染系列教程(十八)实时全局光照
- (含代码)基于51单片机电子密码锁设计
- 一个神奇的FLAC转MP3在线工具
- 运用Excel实现描述性统计分析
- c语言输出99乘法表的思路,C语言输出99乘法表
- 中国石油大学《大学语文》第一阶段在线作业
- java中lifo的数组_Java 实现下压(LIFO)栈
- 关于启动 vue 项目出现 98% after emitting CopyPlugin 的解决方法!
- 第二天学习笔记:(MDN HTML学习、web安全策略与常见攻击、语义化)