乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      兩行 Python 代碼,精準(zhǔn)識(shí)別一張圖片的格式

       頭號(hào)碼甲 2021-04-28

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


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


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

       

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

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

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

      python3 -m pip install pillow
      

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

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

      運(yùn)行效果如下圖所示:

       

       

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

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

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

      運(yùn)行效果如下圖所示:

       

       

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

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類似文章 更多