Python3 Image圖片webp格式轉換,URL Image Byte位元組流操作
前言
首先圖片格式轉換的方法有很多,但是轉圖片位元組流的,我搜了一下午終於在 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 io
from PIL import Image # 注意我的Image版本是pip3 install Pillow==4.3.0
import requests
res = requests.get('http://p1.pstatp.com/list/300x196/pgc-image/152923179745640a81b1fdc.webp', stream=True) # 獲取位元組流最好加stream這個引數,原因見requests官方文件
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 好用, 這個連結就是我搜到答案。
最後希望能幫助到有需求的人,不懂的可以評論留言,有時間就會解答的。
相關推薦
Python3 Image圖片webp格式轉換,URL Image Byte位元組流操作
前言 首先圖片格式轉換的方法有很多,但是轉圖片位元組流的,我搜了一下午終於在 stackoverflow上搜到了 說一下為什麼要線上轉這個圖片格式 額,一名Python3 spider, 需求要爬去文
常用的Emgu CV程式碼(主要有圖片格式轉換,圖片裁剪,圖片翻轉,圖片旋轉和圖片平移等功能)
轉載自部落格 using System; using System.Drawing; using Emgu.CV; using Emgu.CV.CvEnum; using Emgu.CV.Structure; namespace ZNLGIS { public class Im
微信小程序 Image 圖片實現寬度100%,高度自適應
高度自適應 nbsp src 小程序 設置 hello clas 自適應 mode 做法如下: 樣式設置寬度100%, .img{ width:100%;} 添加屬性 mode="widthFix", <image class="img" src="../../ima
Extjs 時間格式轉換,有幫忙看看的嗎
分享 png img inf bsp nbsp http 格式 com 一直沒轉換成功,求幫忙。Extjs 時間格式轉換,有幫忙看看的嗎
matlab裡的影象格式轉換,矩陣型別unit8與double
1、uint8與double double函式只是將讀入影象的uint8資料轉換為double型別,一般不使用;常用的是im2double函式,將 uint8影象轉為double型別,範圍為0-1,如果是255的影象,那麼255轉為1,0還是0,中間
ffmpeg對yuv視訊格式轉換,剪下
最近用到yuv視訊做資料集,需要對原視訊進行一系列處理,記錄下來以備檢視。 源資料是yuv444p的,需要轉成yuv420p; 命令:ffmpeg -s 1280*720 -pix_fmt yuv444p -i input.yuv -pix_fmt yuv420p outp
ajax請求當傳送post方式application/json格式資料,url後面又帶有引數的時候
var url="${pageContext.request.contextPath}/json/jsonTest.do?idl=123&id=111"; $.ajax( {type : "POST", url : url, contentType:"application/jso
微信小程式-Image 圖片實現寬度100%,高度自適應
大家好,今天在做微信小程式的商品詳情頁,商品的詳情是圖片集合,渲染完成後發現圖片載入的很不自然,如下圖所示: 大家發現是不是比較模糊並且有壓縮,不能達到預期效果。 解決方法如下: 樣式設定寬度100% .img{ width: 100%;
php base64格式轉換成url並存儲到伺服器指定目錄
<?php header('Content-type:text/html;charset=utf-8'); $base64_image_content = $_POST['imgBase64']; //匹配出圖片的格式 if (preg_match('/^(data:\s*im
Android Studio中圖片的格式轉換
1.從指定路徑獲得圖片字串 public static String GetImageStr(String filePath) {//將圖片檔案轉化為位元組陣列字串,並對其進行Base64編碼處理 String imgFile = filePath;//待處理的圖
matlab把圖片pgm格式轉換成png格式
http://blog.csdn.net/chenbang110/article/details/7591576 Path0 = uigetdir('..\ORL人臉庫', '請在當前資料夾下選擇人臉識別圖片庫' ); T=40; %共40類 TN=
fsb,fev檔案格式轉換,提取與打包
http://bbs.duowan.com/thread-30327245-1-1.html http://www.douban.com/doulist/2003329/ http://www.fmod.org/download/#FMODExAPIDownloads 發現
JAVA呼叫GDAL實現影像格式轉換,以tif to jpg為例
前言 本文簡單實現java呼叫GDAL實現影像格式轉換。 package Marcus.com; import org.gdal.gdal.Dataset; import org.gdal.gdal.Driver; import org.g
Matlab批量實現圖片檔案格式轉換
for n=0:1673 str1='G:\obj\';str2=num2str(n);str3='.png'; SC=[str1,str2,str3]; i=imrea
Python3下OpenCV影象格式轉換方法
OpenCV影象格式是BGR,和我們日常RGB影象顏色通道不一致,恰好相反。雖然顏色通道不一致, 但每個顏色通道的值是沒有問題的,如果解析出來,重新組合,就能轉換成RGB格式影象了。 下面的程式碼,test_probelm是觀察效果。而method1、metho
以位元組流接受鍵盤輸入後寫入檔案,並以緩衝位元組流複製檔案
一、程式碼及解釋 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.File; import java.io.FileOutputStream; import java.io.File
瀏覽器無法載入本地檔案,在後臺讀取位元組流後返回給前端顯示
由於安全性考慮,許多瀏覽器不允許訪問本地檔案。 用谷歌瀏覽器開啟html時,img的src賦值如F:/XXX/XXX/**.jpg,console顯示no allowed to load local resourses 1. 將src改為file:///F:/XXX形式,依
將圖片轉換base64格式,data:image/png;base64是什麼?
一、我們在看程式碼時經常在img或css背景圖片中看到: src=”data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHgAAAB4CAMAAAAOus bgAAAAeFBMVEUAwAD///+U5ZTc9twO
centos下 將(jgp、png)圖片轉換成webp格式
sys 安裝 學習 isa 幫助 webp格式 system pos ini 由於項目要求需要將jpg、png類型的圖片 轉換成webp格式,最開始使用了php gd類庫裏 imagewebp 方法實現,結果發現轉換成的webp格式文件會偶爾出現空白內容的情況。像
使用python將seq轉換為影象image格式,
需要修改的 rootdir = "set資料夾的路徑\set01" import os.path import fnmatch import shutil def open_save(file,savepath): # read .seq file, a