首页 > 一张远程的图片,你如何知道他的扩展名?

一张远程的图片,你如何知道他的扩展名?

比如微信这张。

http://mmbiz.qpic.cn/mmbiz/WRGz2LWLARDP7oiaL5yRvMnApnHypOYfSRNxfB0YYCx7KReEic6lZBWroOuKsHicQftwSfpTXuuKY0ZEmBMVbcgkQ/640?wx_fmt=jpeg&tp=webp&wxfrom=5

url里面没有扩展名。

http头的话,估计有点线索,但是没有直接的答案。这种图片如何获得扩展名和文件名?


文件在文件头中会存有扩展名,这样浏览器才会知道链接里到底是什么东西。

对于图片,如果想要获取文件类型的话,可以先把图片写到canvas中,之后再去读这个canvas,就能读到文件类型了。

201707111723补充:
文件头是文件头,content-type是content-type,不要搞混了。

如果你有linux使用经验的话,可以使用file来查看一下:

很多标准格式的文件,都会在文件头(文件的开头部分!)标明自己是什么格式:

另外jpg和jpeg是一个玩意。使用JPEG格式压缩的图片文件都叫JPEG文件,.jpeg、.jpe、.jfif以及.jif都是一个东西。


url 中的 wx_fmt=jpeg 应该就是拓展名


如果是文件不是码流的话,要自己判断文件的存储格式,不同的文件格式有不同的协议,而一般协议里面的都会会有固定的字节,可以作为识别图片格式的依据。

比如 BMP 的 "BM"

424d 3a05 0600 0000 0000 3600 0000 2800  BM:.......6...(.

jpeg 的 "0xFFD8" 以及 “JFIF0”(不一定都有)

ffd8 ffe0 0010 4a46 4946 0001 0101 0060  ......JFIF.....`

PNG 的前 8 个字节

8950 4e47 0d0a 1a0a 0000 000d 4948 4452  .PNG........IHDR

至于其他格式么,我就不太了解了,不过我觉得肯定也有固定的东西,自己去查每种格式的详细情况呗。


就是看文件头啊

webp就是文件的格式

搬运自维基百科

WebP(发音weppy)5,是一种同时提供了有损压缩与无损压缩的图片文件格式[7],派生自视频编码格式VP8[8],是由Google在购买On2 Technologies后发展出来[9]

https://developers.google.com/speed/webp/
浏览器在下载的时候只是转化成其他电脑可以打开的格式罢了

【热门文章】
【热门文章】