91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么識別一張圖片的格式

發布時間:2021-10-19 09:42:28 來源:億速云 閱讀:221 作者:iii 欄目:web開發

本篇內容介紹了“怎么識別一張圖片的格式”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

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

怎么識別一張圖片的格式

這段 Base64編碼的數據,實際上對應了下面這種圖片:

怎么識別一張圖片的格式

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

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

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

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

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

python3 -m pip install pillow

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

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

運行效果如下圖所示:

怎么識別一張圖片的格式

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

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

import io import base64 from PIL import Image  img_base64 = '圖片對應的 base64' img_byte = base64.b64decode(img_base64.encode()) img_io = io.BytesIO(img_byte) img = Image.open(img_io) print(img.format)

運行效果如下圖所示:

怎么識別一張圖片的格式

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

“怎么識別一張圖片的格式”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

开鲁县| 洮南市| 河津市| 巩留县| 襄垣县| 浙江省| 襄汾县| 桓仁| 安岳县| 淳化县| 丽江市| 桐柏县| 南昌县| 宣威市| 巴彦县| 宝山区| 邹平县| 邵东县| 涪陵区| 浪卡子县| 拜城县| 冀州市| 乌拉特后旗| 虹口区| 海伦市| 高碑店市| 调兵山市| 洮南市| 二连浩特市| 股票| 天柱县| 无锡市| 精河县| 义马市| 宜兰市| 茂名市| 怀宁县| 仁布县| 宁安市| 揭西县| 白水县|