国产探花免费观看_亚洲丰满少妇自慰呻吟_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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 丰城市| 甘南县| 乃东县| 元氏县| 绿春县| 湘阴县| 安达市| 鹤庆县| 隆德县| 类乌齐县| 山丹县| 长子县| 通山县| 昌都县| 正蓝旗| 依兰县| 阿拉善左旗| 龙岩市| 观塘区| 安阳市| 大城县| 华坪县| 张家口市| 偃师市| 青河县| 乌鲁木齐县| 宜阳县| 尉氏县| 金秀| 闸北区| 明溪县| 常德市| 绩溪县| 福贡县| 集安市| 驻马店市| 徐水县| 莱州市| 勐海县| 故城县| 军事|