python畫圖常見不同圖片格式保存方式
更新時間:2023年09月14日 09:14:12 作者:沒意思不好玩我不玩了
這篇文章主要介紹了python畫圖常見不同圖片格式保存方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
python畫圖常見不同圖片格式保存
上周討論老師要我把data生成 tif / tiff 圖給他,方便用于編輯成高清矢量圖?(原諒我沒太仔細聽為什么了。。。這該死的瞌睡蟲)放進paper,平常都是直接生成pdf,順便記錄一下簡單的存圖過程。
import matplotlib.pyplot as plt
import numpy as np
# 生成數(shù)據(jù)===================================
x = np.arange(0, 1, 0.1) # 橫坐標從0到1,步長為0.1
y = np.cos(x) # 縱坐標為 x 對應的 cos(x) 值
# 生成圖形===================================
plt.figure(dpi=600)#自己設哈,其實300就夠了
plt.plot(x, y)
#保存圖片===================================
#習慣了,沒有理由
plt.savefig('C:/Users/YuJia/Desktop/cos.pdf')
#JPG/JPEG是最常見的格式,有損壓縮,細節(jié)流失,但內存小
plt.savefig('C:/Users/YuJia/Desktop/cos.jpeg')
plt.savefig('C:/Users/YuJia/Desktop/cos.jpg')
#檔案比JPEG大,壓縮不失真,能夠相容透明/半透明圖像
plt.savefig('C:/Users/YuJia/Desktop/cos.png')
#可縮放向量圖,以向量圖形組成,而非像素,不被限制于某種解析度(仿佛無限大哈哈哈沒有啦),一般用網(wǎng)頁瀏覽器開啟(如Chrome、Firefox、Edge或Internet Explorer)
plt.savefig('C:/Users/YuJia/Desktop/cos.svg')
#標簽圖像文件格式,可進行有損或無損壓縮
plt.savefig('C:/Users/YuJia/Desktop/cos.tif')
plt.savefig('C:/Users/YuJia/Desktop/cos.tiff')
# 顯示圖形===================================
plt.show()以下是產(chǎn)生的各種圖片大小:

稍微看一下,圖片大小還跟dpi設置有關,差很多!?。∮绕涫?tif / tiff 這種,dpi 高的可以有幾百MB那么大。
好的,速速講完,雖然沒什么內容,睡覺,同為可愛的畫圖工具人們。
保存圖片的常用方法
1.PIL的保存圖片方法
path = r"./001.jpg" #圖片路徑
img = Image.open(path) #打開圖片
img.save("1.jpg") #將圖片保存為1.jpg2.opencv保存圖片
path = r"./001.jpg" #圖片路徑
#img = cv.imdecode(np.fromfile("動漫人物_0.jpg",np.uint8))#含有中文路徑的圖片打開
img = cv2.imread(path) #讀取圖片
cv2.imwrite("1.jpg",img) #將圖片保存為1.jpg3.Matplotlib保存圖片的方法
import matplotlib.pyplot as plt
import cv2
import os
images_path = "./minist_img"
for i,img_name in enumerate(os.listdir(images_path)):
img_path = os.path.join(images_path,img_name)
img = cv2.imread(img_path) #numpy的數(shù)組形式,色彩空間為BGR
img = cv2.cvtColor(img,cv2.COLOR_BGR2RGB) #
plt.subplot(2,2,i+1),plt.imshow(img)
plt.savefig("./minist.jpg")
plt.show()
4.pytorch保存圖片
save_image(real_img,os.path.join(save_img,f"{epoch}_real.jpg"),nrow=10,padding=2,pad_value=255)參數(shù):
- tensor:4D張量,形狀為(B x C x H x W),分別表示樣本數(shù),通道數(shù),圖像高度,圖像寬度
- nrow:每行的圖片數(shù)量,默認值為8
- padding:相鄰圖像之間的間隔。默認值為2
- normalize:如果為True,則把圖像的像素值通過range指定的最大值和最小值歸一化到0-1。默認為False
- range:元組,用于指定最大值和最小值。默認使用圖像像素的最大最小值。
- sacle_each:如果為True,就單獨對每張圖像進行normalize;如果是False,統(tǒng)一對所有圖像進行normalize。默認為Flase
- pad_value:float,上述padding會使得圖像之間留出空隙,默認為0

總結
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
django處理select下拉表單實例(從model到前端到post到form)
這篇文章主要介紹了django處理select下拉表單實例(從model到前端到post到form),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
Python人工智能之路 之PyAudio 實現(xiàn)錄音 自動化交互實現(xiàn)問答
關于音頻, PyAudio 這個庫, 可以實現(xiàn)開啟麥克風錄音, 可以播放音頻文件等等。文章介紹了如何使用Python第三方庫PyAudio進行麥克風錄音然后自動播放已經(jīng)合成的語音實現(xiàn)語音交互回答,需要的朋友可以參考下2019-08-08

