国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

Python3實現轉換Image圖片格式

2020-02-15 21:57:57
字體:
來源:轉載
供稿:網友

前言

首先圖片格式轉換的方法有很多,但是轉二進制字節流的,我搜了一下午終于在 stackoverflow上搜到了
說一下為什么要在線轉這個圖片格式
額,一名Python3 spider, 需求要爬去文章,并且把里面的圖片,上傳到本公司的七牛云上面,
意思就是,圖片不需要下載到本地,爬取到圖片url后,讀取圖片二進制數據,然后上傳到自己公司七牛云上面,并且替換其格式(這一點很坑)

上傳圖片二進制數據到七牛云上面不難, 照著七牛云API文檔基本就能行,有一點很坑,七牛云官方文檔Python API 賊雞兒坑,上面的Demo全是,上傳本地圖片的put_file()方法,我要上傳遠程服務器上面的,沒看到對應的方法。

準備修改qiniu SDK源碼的,看到了一個put_data()方法能傳二進制數據。

好我寫這篇博文重點來了

需求:由于我爬取的圖片遠程是google的 .webp格式的圖片, 鏈接是https://xxxx.webp這種,而這個格式又不能直接修改后綴改。

于是我去網上搜Python3 圖片格式轉換的方法。

最多的就是這種方法

from PIL import Image  # 安裝pillow 有些小坑 對了我的版本是Pillow==4.3.0 im = Image.open("./demo1.jpg") im.save("./demo2.png")

但是我要上傳的文件都不在本地,都是請求圖片二進制流在線修改圖片后綴。

二話不說直接亮代碼吧,虧我找了一下午,還在pillow的github上提問。終于在stackoverflow上搜到了。

import iofrom PIL import Image # 注意我的Image版本是pip3 install Pillow==4.3.0import requestsres = requests.get('http://images.xxx.com/-7c0dc4dbdca3.webp')byte_stream = io.BytesIO(res.content) # 把請求到的數據轉換為Bytes字節流(這樣解釋不知道對不對,可以參照[廖雪峰](https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001431918785710e86a1a120ce04925bae155012c7fc71e000)的教程看一下)roiImg = Image.open(byte_stream)  # Image打開二進制流Byte字節流數據imgByteArr = io.BytesIO()   # 創建一個空的Bytes對象roiImg.save(imgByteArr, format='PNG') # PNG就是圖片格式,我試過換成JPG/jpg都不行imgByteArr = imgByteArr.getvalue()  # 這個就是保存的二進制流# 下面這一步只是本地測試, 可以直接把imgByteArr,當成參數上傳到七牛云with open("./abc.png", "wb") as f:  f.write(imgByteArr)

我感覺我這個在線轉換的絕對是CSDN第一篇, 搜了一下午,人都搜絕望了。
還是 stackoverflow 好用, 這個鏈接就是我搜到答案。

今天一上github ,作者回復我了的問題了,https://github.com/python-pillow/Pillow/issues/3192

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 江阴市| 杭州市| 香河县| 姜堰市| 湄潭县| 凌源市| 威海市| 梁山县| 乾安县| 屏南县| 遂平县| 周口市| 四子王旗| 响水县| 翁源县| 新乡县| 浦东新区| 曲水县| 上蔡县| 贵港市| 铁岭县| 安顺市| 武乡县| 临沂市| 仙游县| 丹寨县| 花莲市| 汽车| 石景山区| 溧阳市| 兴海县| 兴仁县| 甘南县| 敖汉旗| 土默特左旗| 克什克腾旗| 河南省| 西乡县| 阿鲁科尔沁旗| 多伦县| 福州市|