java获取无后缀的网络图的地址【从url中获取图片格式】

article/2025/9/24 9:01:32

文章目录

    • 引入
    • 解决方案

引入

demo地址
我们往往会有需要将第三方图片转存的需求,然后第三方图片常常是一个没有格式的url地址,例如微信用户信息接口获取的用户图片地址如下:

https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKCVCniciaWgOBdNl0iaZZib2ArWlb0ndceove41GTWV2RSjFqyIAWMEMNkLYTzh8YuCNzjVr3V8bW3Yw/132

此时我们在进行转存的时候如果没有格式就不好下手

解决方案

封装工具类,来获取网络图片的地址,通过得到图片的流来读取头部的格式信息

package online.longzipeng.mywebdemo.utils;import javax.imageio.ImageIO;
import javax.imageio.ImageReader;
import javax.imageio.stream.ImageInputStream;
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;/*** @author lzp* @Date:2023/6/7* @description: 文件工具类*/
public class FileUtils {public static void main(String[] args) throws IOException {System.out.println(getImageFormat("https://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTKCVCniciaWgOBdNl0iaZZib2ArWlb0ndceove41GTWV2RSjFqyIAWMEMNkLYTzh8YuCNzjVr3V8bW3Yw/132"));}/*** 获取url地址对应图片的格式** @param imageUrl 图片的url地址*/public static String getImageFormat(String imageUrl) throws IOException {// 从URL下载图片URL url = new URL(imageUrl);ByteArrayOutputStream output = new ByteArrayOutputStream();try (InputStream input = url.openConnection().getInputStream()) {byte[] buffer = new byte[1024];int n;while ((n = input.read(buffer)) != -1) {output.write(buffer, 0, n);}}byte[] bytes = output.toByteArray();// 判断文件头部是否为JPEG,如果是即返回JPEGif (bytes[0] == (byte) 0xFF && bytes[1] == (byte) 0xD8) {return "JPEG";}// 使用Image I/O API来识别图片格式ImageInputStream in = ImageIO.createImageInputStream(new ByteArrayInputStream(bytes));try {ImageReader reader = ImageIO.getImageReaders(in).next();reader.setInput(in);return reader.getFormatName().toUpperCase();} finally {in.close();}}}

输出结果如下所示:
在这里插入图片描述


http://chatgpt.dhexx.cn/article/xiIv7ufb.shtml

相关文章

更改技嘉主板开机画面

一、 首先按照顺序安装3个软件.NET4.5, APP Center , BIOS 二、 安装完成后运行BIOS,点击Face wizard选项,在点击“浏览” 三、 选择需要更新的开机画面,点击OK 四、 出现更新的LOGO画面,点击下一步,

windows10一键修改开机动画

今天没什么事打开酷安的时候看到一篇关于windwos改开机动画的,所以就在网上找了半天,终于是发现了这个方法非常简单亲测!! 利用GitHub开源项目“HackBGRT”。 地址:https://github.com/Metabolix/HackBGRT/releases …

window 开机画面修改

1.修改启动项: 修改为: 2.把想实现的图片修改名称为:boot.bmp 把该图片放置到c:\windows 3.试验完成,重启即可! 用了个猪头做开机画面,嘿嘿。。。。。 转载于:https://blog.51cto.com/dnsdhcp/324457

联想ThinkPad E14 如何修改BIOS开机画面LOGO

环境: 电脑:联想E14 系统:Windows 10 专业版 64位 问题描述: 联想ThinkPad E14修改BIOS开机画面LOGO 解决方案: 一、下载BIOS升级程序 1.打开ThinkPad官方网下载BIOS升级程序 2.点击驱动下载 3.输入主机序列号…

源码中修改Android的开机画面和动画

参照文章:http://blog.csdn.net/a345017062/article/details/6222962、http://bbs.gfan.com/android-146253-1-1.html。 Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序…

android开机logo和动画修改

Android系统开机显示画面分成两个过程,第一个过程从按电源键到Frameworks启动为止。第二个过程从Frameworks启动完成到Launcher程序启动完成。 第一个过程显示的画面是一张图,第二个过程显示的是一个动画。分别简要记录一下怎么样在源码中修改这两个地方…

修改Windows7启动画面与登录画面

Windows7进入桌面前,要经过两次画面切换,首先是启动画面,其次是登录画面。这两个画面可以通过特殊处理修改。 一、修改启动画面 方式1: 如果只需要变成全黑,不显示任何动画与文字,可以禁用启动画面&…

修改电脑开机徽标教程

Windows10/11修改电脑开机徽标 目录:修改电脑开机徽标条件修改教程修改成功之后 目录: 修改电脑开机徽标条件 Windows10 32位系统及以上(否则改不成功!) 修改教程 1.Windows10/Windows11系统按下WinR 打开运行框 2.在…

修改开机logo

如何修改电脑开机logo 主要步骤第零步第一步第二步第三步第四步第五步第六步第七步 开机logo是每一台笔记本电脑开机时展现出来的画面,通常情况下是电脑的品牌,例如,联想、神舟、戴尔等。接下来,我将分享一下更换开机logo的经验。…

Android修改开机动画

1.首先找到framework/base/data/sounds/bootanimation.zip 4.0 是在vendor/thirdapp/zh_CN/bootanim/system/media/bootanimation.zip 看一下结构: desc.txt part0 part1 三部分 part0,part1包含相关动画图片(PNG格式,分辨率与手机分辨率相同) desc.txt为配置文件内…

更改安卓系统开机画面

1;进入as的Device 找到文件夹system,再找到文件夹media。(在设备的ES工具中也能看到,在电脑上看不到) 2; 进去之后找到bootanimaton.zip 文件,将其导出(save as),然后删…

BIOS全屏开机画面LOGO的修改

对于在自己主板上添加全屏开机LOGO的过程,好多文章都已经介绍了,本网站以前的文章中也有介绍,但是很多网友还是无法自己修改成功。但很多原因都是没有掌握好修改的方法,本网站将制作修改过程重新制作了一下,希望对不明…

Android——修改开机画面

Android——修改开机画面 开机第三屏(android动画) 编译成功后在android源码根目录生成out目录, 修改android\out\target\product\sdkDemo\system\framework目录下的framework-res.apk 用winrar格式打开,替换assets\images里的2张…

win10如何更改计算机开机界面,win10怎么修改开机画面_win10开机画面怎么换

win10系统想必大家都非常熟悉吧,有的win10纯净版32位系统用户不想让自己的开机画面一直是一个样式,想要修改自己电脑的开机画面,可是又不知道应该怎么修改,接下来小编就给大家讲解一下关于win10系统更改启动画面的详细操作步骤。 …

最新手机号段归属地数据库 高性能dat解析

最新 手机号段数据库 2020-08-15 458461条记录 号码归属地数据库 全面 准确 规范 字段包括 省份 城市 运营商 邮编 区号 等信息,对于数据分析、号码归属地查询等非常有帮助 名称:手机号码归属地查询 dat高效率查询 内存优化版 压缩:原…

手机号码归属地数据库下载

一份手机号归属地数据,共有174495条数据,包括中国移动,中国联通,中国电信的(包含152、186、188、189开头的手机号)。其中cardtype字段基本上没有什么用。因为可以通过办理某些业务就可以把如全球通卡转成神…

手机号段归属地数据库

最新手机号段 归属地数据库 每月更新一次 1、提供三大运营商及虚拟运营商的号段数据库,共340054条数据,最后更新时间:2016-04-20 2、字段:号段前缀、号段、邮编、区号、省、市、运营商、卡类型 3、号段包括 1)移…

调用手机在线API获取手机号码归属地信息

手机在线(www.showji.com)始创于2001年,发展至今已拥有国内最准确、号段容量最大的手机号码归属地数据库系统, 目前号段容量将近33万条,每月保持两次以上规模数据更新,合作伙伴包括:百度、淘宝、…

最新手机号码归属地数据库(2017年4月1日)

2017年4月1日版 近36万条记录 celldb.cc最新 号码归属地数据库 手机号段数据库 移动 联通 电信 移动号段 联通号段 电信号段 虚拟170号段 171号段号码字段包括 省市 运营商 邮编 区号 等信息 移动号码: 134 135 136 137 138 139 147 150 151 152 157 158 159 178 …

PHP——最新号码归属地数据库

前言 最近在忙的一个项目,为了数据安全,不能够使用任何第三方的接口~ 号码库 | https://github.com/wangyang0210/Phone-Number-Range 代码 其实就是一个很简单的封装方法,没什么好说的~ /*** 根据号码返回归属地* * param string $phone 手机…