糖尿病康复,内容丰富有趣,生活中的好帮手!
糖尿病康复 > Java获取图片文件格式(后缀)

Java获取图片文件格式(后缀)

时间:2019-10-19 13:41:49

相关推荐

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获取图片文件格式(后缀)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。