日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

学习笔记(番外篇)——python批量转换图片格式

發布時間:2024/4/17 python 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 学习笔记(番外篇)——python批量转换图片格式 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

2019獨角獸企業重金招聘Python工程師標準>>>

#-*- coding:utf-8 -*- from PIL import Image import os import globos.chdir(r'F:\work\images')#圖片所在的文件夾 for file_names in glob.glob('*.bmp'):#找出所有的后綴為bmp的格式的圖片print(file_names)file_path = r'F:\work\images'+'\\'+file_names#拼接出圖片的完整urlprint(file_path)out_path = os.path.splitext(file_path)[0]+'.jpg'Image.open(file_path).save(out_path) print('轉換成功')

代碼做的比較簡潔,沒有錯誤處理,還多了一些沒什么用的print語句,但事實上那是在測試看得到的圖片名字,圖片路徑是否正確。代碼挺簡單的,但是這里用到的三個模塊會在后面記錄下來,畢竟好記性不如爛筆頭,留著以后查看所用。

先說上面的代碼,先聲明文件編碼,然后引入三個所需要的模塊PIL,os,glob

#-*- coding:utf-8 -*- from PIL import Image import os import glob

定位到圖片所在的文件夾,for語句找出所有后綴為bmp的圖片的名字的全稱(包含后綴名),輸出看得到的圖片的名字是否正確,拼接圖片的完整路徑,要注意轉義字符‘\’,輸出看拼接的路徑是否正確,然后將bmp的格式的圖片打開,存成jpg的格式的圖片,所有圖片處理完后,打印成功。

?

os.chdir(r'F:\work\images')#圖片所在的文件夾 for file_names in glob.glob('*.bmp'):#找出所有的后綴為bmp的格式的圖片print(file_names)file_path = r'F:\work\images'+'\\'+file_names#拼接出圖片的完整urlprint(file_path)out_path = os.path.splitext(file_path)[0]+'.jpg'Image.open(file_path).save(out_path) print('轉換成功')

接下來記錄所用到的三個模塊的一些基本用法:

一、PIL模塊全稱python?Imaging Library (PIL)是PythonWare公司提供的免費的圖像處理工具包,是python下的圖像處理模塊,支持多種格式,并提供強大的圖形與圖像處理功能。雖然在這個軟件包上要實現類似MATLAB中的復雜的圖像處理算法并不太適合,但是Python的快速開發能力以及面向對象等等諸多特點使得它非常適合用來進行原型開發。對于簡單的圖像處理或者大批量的簡單圖像處理任務,python+PIL是很好的選擇。

下載PIL,linux可以直接通過命令:

sudo apt-get install python-imaging

windows平臺的可以直接去PIL官網下載exe文件:http://pythonware.com/products/pil/

from PIL import Image im = Image.open(r'F:\work\images\alien.jpg')#打開路徑下的alien.jpg圖片 im.show()#顯示已經打開的圖片 new_im01 = im.resize((56,56),Image.BILINEAR)#將圖片縮小放大至56*56 new_im02 = new_im01.rotate(90)#旋轉圖片90度 new_in02.save('new_in02.jpg')#保存圖片,且圖片名為new_in02.jpg'

具體的參考:PIL中文手冊、PIL官方文檔、華秋實的博客《初試PIL》

二、OS模塊

一般用于處理當前所在的目錄,由于代碼極有可能在其它電腦或其它系統運行,所以環境有所不一樣,所工作的當前目錄也有可能不一樣,而os能解決這些問題。

os.name#輸出字符串指示正在使用的平臺,window顯示'nt',linux則顯示'posix' os.getcwd()#函數得到當前工作目錄,即當前python腳本工作的目錄路徑。 os.listdir()#返回指定目錄下的所有文件和目錄名。 os.remove()#刪除一個文件 os.system()#運行shell命令 os.sep#可以取代操作系統特定的路徑分割符。 os.linesep#字符串給出當前平臺使用的行終止符,Windows使用'\r\n',Linux使用'\n'而Mac使用'\r'。 os.path.split()#函數返回一個路徑的目錄名和文件名 os.path.isfile()和os.path.isdir()#函數分別檢驗給出的路徑是一個文件還是目錄。 os.path.exists()#函數用來檢驗給出的路徑是否真地存在 os.path.abspath(name)#獲得絕對路徑 os.path.normpath(path)#規范path字符串形式 os.path.getsize(name)#獲得文件大小,如果name是目錄返回0L os.path.splitext()#分離文件名與擴展名 os.path.join(path,name)#連接目錄與文件名或目錄 os.path.dirname(path)#返回文件路徑 os.chdir()#用于改變當前工作目錄到指定的路徑。

參考:os模塊中文文檔

三、glob模塊

glob.glob:返回所有匹配的文件路徑列表。它只有一個參數pathname,定義了文件路徑匹配規則,這里可以是絕對路徑,也可以是相對路徑。

import glob print(glob.glob(r'F:\work\images\*.bmp'))#獲得指定目錄下的所有bmp格式的圖片 print(glob.glob(r'..\*.bmp'))#獲得當前工作目錄下的上級目錄的所有bmp圖片

glob.iglob:獲取一個可編歷對象,使用它可以逐個獲取匹配的文件路徑名。與glob.glob()的區別是:glob.glob同時獲取所有的匹配路徑,而glob.iglob一次只獲取一個匹配路徑。

import glob f = glob.iglob(r'../*.py') print(f)#<generator object iglob at 0x00B9FF80> for py in f:print(py)

?

轉載于:https://my.oschina.net/u/3629884/blog/1506825

總結

以上是生活随笔為你收集整理的学习笔记(番外篇)——python批量转换图片格式的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。