成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

一日一技:如何識別一張圖片的格式

開發(fā) 前端
在有些時候,我們拿到了一張圖片的二進制數(shù)據(jù),但卻不知道這張圖片應(yīng)該是什么格式。

[[381761]]

在有些時候,我們拿到了一張圖片的二進制數(shù)據(jù),但卻不知道這張圖片應(yīng)該是什么格式。例如,某個 HTTP接口返回給你一段 Base64編碼的圖片數(shù)據(jù),如下圖所示:

 

這段 Base64編碼的數(shù)據(jù),實際上對應(yīng)了下面這種圖片:

[[381762]]

 

那么問題來了,這張圖片的格式是 JPG 還是 PNG?是 BMP 還是只有一幀的 GIF?

還有一些網(wǎng)站,他們的圖片URL 格式類似于:https://www.kingname.info/xx/yy/zz,在 URL 中沒有顯示圖片的格式。那么,當(dāng)你用爬蟲把這個圖片下載下來以后,應(yīng)該怎么保存呢?

雖然在大部分情況下,你確實可以把一張 PNG 格式的圖片保存成 JPG,在電腦上也能雙擊打開看。但如果你要寫一些程序來處理圖片,那么圖片的格式就至關(guān)重要了。例如 GIF 里面有幀信息,而JPG 里面卻沒有,PNG 圖片有通道信息,而 JPG 也沒有。如果你下載了一張JPG 的圖片,卻嘗試用處理 GIF 的方式去提取幀信息,顯然就會導(dǎo)致程序報錯。

為了解決這個問題,你可以使用 Pillow 這個常見的圖片處理庫。它可以很容易識別一張常見格式圖片的格式。

我們可以使用如下的命令來安裝 Pillow:

  1. python3 -m pip install pillow 

安裝完成以后,我們使用PIL導(dǎo)入圖片處理的模塊Image:

  1. from PIL import Image 
  2.  
  3. img = Image.open('/Users/kingname/Dropbox/50e452c3504a6.jpg'
  4. print(img.format) 

運行效果如下圖所示:

 

成功把一張 JPG 格式識別為了 JPEG(JPG、JPEG 是同一個東西)。但顯然,我們大多數(shù)情況下,圖片是以二進制的形式存放到內(nèi)存中的,而不是放在硬盤中。但Image.open()接收的參數(shù)是一個文件地址。我們需要讓 Pillow 從內(nèi)存中讀取圖片數(shù)據(jù),生成圖片對象以后,查看它的.format屬性。

這個時候,就可以使用io模塊,把二進制的數(shù)據(jù)包裝成一個假的二進制文件句柄:

  1. import io 
  2. import base64 
  3. from PIL import Image 
  4.  
  5. img_base64 = '圖片對應(yīng)的 base64' 
  6. img_byte = base64.b64decode(img_base64.encode()) 
  7. img_io = io.BytesIO(img_byte) 
  8. img = Image.open(img_io) 
  9. print(img.format) 

運行效果如下圖所示:

 

這樣一來,我們就成功識別了一張未知圖片的格式了。

本文轉(zhuǎn)載自微信公眾號「未聞Code」,可以通過以下二維碼關(guān)注。轉(zhuǎn)載本文請聯(lián)系未聞Code公眾號。

 

責(zé)任編輯:武曉燕 來源: 未聞Code
相關(guān)推薦

2021-10-15 21:08:31

PandasExcel對象

2022-06-28 09:31:44

LinuxmacOS系統(tǒng)

2022-03-12 20:38:14

網(wǎng)頁Python測試

2025-05-28 03:15:00

Scrapy數(shù)據(jù)sleep

2021-04-27 22:15:02

Selenium瀏覽器爬蟲

2023-10-28 12:14:35

爬蟲JavaScriptObject

2024-07-30 08:11:16

2024-07-30 08:16:18

Python代碼工具

2024-11-11 00:38:13

Mypy靜態(tài)類型

2021-05-08 19:33:51

移除字符零寬

2022-03-07 09:14:04

Selenium鼠標(biāo)元素

2021-04-12 21:19:01

PythonMakefile項目

2024-11-13 09:18:09

2021-04-05 14:47:55

Python多線程事件監(jiān)控

2020-12-11 06:30:00

工具分組DataFrame

2023-10-29 09:16:49

代碼安全命令

2021-05-13 09:01:51

Cloud Flare瀏覽器網(wǎng)站

2024-02-20 22:13:48

Python項目Java

2020-05-19 13:55:38

Python加密密碼

2024-08-27 22:08:13

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 亚洲欧美激情精品一区二区 | 毛片免费在线观看 | 国产一区在线免费观看 | 999久久精品 | 秋霞影院一区二区 | 国产资源网 | 影音先锋男 | 亚洲不卡在线观看 | 精品国产乱码久久久久久果冻传媒 | 99这里只有精品视频 | 国产精品一区一区 | 欧美日韩综合 | 日韩av一区二区在线观看 | www.天天操.com | 亚洲精品白浆高清久久久久久 | 99视频免费在线 | 亚洲国产精品自拍 | 日本成人福利视频 | 国产一区二区在线免费观看 | 成人黄色a | 日韩一级免费大片 | 99久久久久久久 | 精品无码久久久久国产 | 久久精品色视频 | 黄色一级毛片 | 成人av播放| 亚洲成人网在线观看 | 天天操夜夜操 | 久久久一区二区三区 | 国产成人精品久久 | 亚洲天堂二区 | av国产精品毛片一区二区小说 | 久久噜| 天堂va在线观看 | 羞羞涩涩在线观看 | 国产精品久久福利 | 国产一区视频在线 | 日韩一区二区免费视频 | 成年精品 | 国产欧美久久精品 | 日韩一区二区在线播放 |