Python3實現(xiàn)轉(zhuǎn)換Image圖片格式
前言
首先圖片格式轉(zhuǎn)換的方法有很多,但是轉(zhuǎn)二進制字節(jié)流的,我搜了一下午終于在 stackoverflow上搜到了
說一下為什么要在線轉(zhuǎn)這個圖片格式
額,一名Python3 spider, 需求要爬去文章,并且把里面的圖片,上傳到本公司的七牛云上面,
意思就是,圖片不需要下載到本地,爬取到圖片url后,讀取圖片二進制數(shù)據(jù),然后上傳到自己公司七牛云上面,并且替換其格式(這一點很坑)
上傳圖片二進制數(shù)據(jù)到七牛云上面不難, 照著七牛云API文檔基本就能行,有一點很坑,七牛云官方文檔Python API 賊雞兒坑,上面的Demo全是,上傳本地圖片的put_file()方法,我要上傳遠(yuǎn)程服務(wù)器上面的,沒看到對應(yīng)的方法。
準(zhǔn)備修改qiniu SDK源碼的,看到了一個put_data()方法能傳二進制數(shù)據(jù)。
好我寫這篇博文重點來了
需求:由于我爬取的圖片遠(yuǎn)程是google的 .webp格式的圖片, 鏈接是https://xxxx.webp這種,而這個格式又不能直接修改后綴改。
于是我去網(wǎng)上搜Python3 圖片格式轉(zhuǎn)換的方法。
最多的就是這種方法
from PIL import Image # 安裝pillow 有些小坑 對了我的版本是Pillow==4.3.0 im = Image.open("./demo1.jpg") im.save("./demo2.png")
但是我要上傳的文件都不在本地,都是請求圖片二進制流在線修改圖片后綴。
二話不說直接亮代碼吧,虧我找了一下午,還在pillow的github上提問。終于在stackoverflow上搜到了。
import io from PIL import Image # 注意我的Image版本是pip3 install Pillow==4.3.0 import requests res = requests.get('http://images.xxx.com/-7c0dc4dbdca3.webp') byte_stream = io.BytesIO(res.content) # 把請求到的數(shù)據(jù)轉(zhuǎn)換為Bytes字節(jié)流(這樣解釋不知道對不對,可以參照[廖雪峰](https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431918785710e86a1a120ce04925bae155012c7fc71e000)的教程看一下) roiImg = Image.open(byte_stream) # Image打開二進制流Byte字節(jié)流數(shù)據(jù) imgByteArr = io.BytesIO() # 創(chuàng)建一個空的Bytes對象 roiImg.save(imgByteArr, format='PNG') # PNG就是圖片格式,我試過換成JPG/jpg都不行 imgByteArr = imgByteArr.getvalue() # 這個就是保存的二進制流 # 下面這一步只是本地測試, 可以直接把imgByteArr,當(dāng)成參數(shù)上傳到七牛云 with open("./abc.png", "wb") as f: f.write(imgByteArr)
我感覺我這個在線轉(zhuǎn)換的絕對是CSDN第一篇, 搜了一下午,人都搜絕望了。
還是 stackoverflow 好用, 這個鏈接就是我搜到答案。
今天一上github ,作者回復(fù)我了的問題了,https://github.com/python-pillow/Pillow/issues/3192
- python實現(xiàn)圖片轉(zhuǎn)換成素描和漫畫格式
- Python3.7將普通圖片(png)轉(zhuǎn)換為SVG圖片格式(網(wǎng)站logo圖標(biāo))動起來
- Python 實現(xiàn)判斷圖片格式并轉(zhuǎn)換,將轉(zhuǎn)換的圖像存到生成的文件夾中
- Python 實現(xiàn)opencv所使用的圖片格式與 base64 轉(zhuǎn)換
- 利用python和ffmpeg 批量將其他圖片轉(zhuǎn)換為.yuv格式的方法
- python將.ppm格式圖片轉(zhuǎn)換成.jpg格式文件的方法
- 使用python將圖片格式轉(zhuǎn)換為ico格式的示例
- python實現(xiàn)批量圖片格式轉(zhuǎn)換
- 利用python將圖片轉(zhuǎn)換成excel文檔格式
- Python將圖片批量從png格式轉(zhuǎn)換至WebP格式
- python實現(xiàn)通過pil模塊對圖片格式進行轉(zhuǎn)換的方法
- python利用tkinter實現(xiàn)圖片格式轉(zhuǎn)換的示例
相關(guān)文章
python循環(huán)監(jiān)控遠(yuǎn)程端口的方法
這篇文章主要介紹了python循環(huán)監(jiān)控遠(yuǎn)程端口的方法,涉及Python實現(xiàn)端口監(jiān)控的技巧,需要的朋友可以參考下2015-03-03基于OpenCV(python)的實現(xiàn)文本分割之垂直投影法
本文主要介紹了基于OpenCV(python)的實現(xiàn)文本分割之垂直投影法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08Python執(zhí)行外部命令subprocess的使用詳解
subeprocess模塊是python自帶的模塊,無需安裝,主要用來取代一些就的模塊或方法,本文通過實例代碼給大家分享Python執(zhí)行外部命令subprocess及使用方法,感興趣的朋友跟隨小編一起看看吧2021-05-05淺談多卡服務(wù)器下隱藏部分 GPU 和 TensorFlow 的顯存使用設(shè)置
這篇文章主要介紹了淺談多卡服務(wù)器下隱藏部分 GPU 和 TensorFlow 的顯存使用設(shè)置,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-06-06Python常用數(shù)據(jù)類型之間的轉(zhuǎn)換總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Python中常用數(shù)據(jù)類型之間的轉(zhuǎn)換相關(guān)知識點,有需要的朋友們可以學(xué)習(xí)下2019-09-09使用Docker制作Python環(huán)境連接Oracle鏡像
這篇文章主要為大家介紹了使用Docker制作Python環(huán)境連接Oracle鏡像示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-06-06