python實(shí)現(xiàn)對(duì)圖片進(jìn)行旋轉(zhuǎn),放縮,裁剪的功能
先說(shuō)明下,我這是對(duì)某個(gè)目錄下的圖片名稱進(jìn)行操作,該目錄下的圖片名稱為1.jpg,2.jpg。。。。。這樣類似的圖片名。
1.旋轉(zhuǎn)
# -*-coding:utf-8-*-
from PIL import Image
def rotateimg(inputimg,outimg):
im = Image.open(inputimg)
# 圖片的寬度和高度
img_size = im.size
print("圖片寬度和高度分別是{}".format(img_size))
# 旋轉(zhuǎn)圖片
# 左旋轉(zhuǎn)90度
im = im.rotate(90)
print("圖片寬度和高度分別是{}".format(im.size))
im.save(outimg)
if __name__ == "__main__":
#
inputpath = "D:/test/tmp/shuibiao/"
outpath = "D:/test/tmp/img/"
for i in range(1,24):
tmpin = inputpath+str(i)+'.jpg'
tmpout = outpath+str(i)+'.jpg'
rotateimg(tmpin, tmpout)
print('成功旋轉(zhuǎn)第'+str(i)+'張圖片')
2.放縮
# -*-coding:utf-8-*-
from PIL import Image
def resizeimg(inputimg,outimg):
img1 = Image.open(inputimg)
out=img1.resize((260, 180),Image.ANTIALIAS)
print("圖片寬度和高度分別是{}".format(out.size))
out.save(outimg)
if __name__ == "__main__":
#
inputpath = "D:/test/tmp/img/"
outpath = "D:/test/tmp/img_1/"
for i in range(1, 24):
tmpin = inputpath + str(i) + '.jpg'
tmpout = outpath + str(i) + '.jpg'
resizeimg(tmpin, tmpout)
print('成功放縮第' + str(i) + '張圖片')
3.裁剪
# -*-coding:utf-8-*-
from PIL import Image
def cropimg(inputimg,outimg):
im = Image.open(inputimg)
# 圖片的寬度和高度
img_size = im.size
print("圖片寬度和高度分別是{}".format(img_size))
'''
裁剪:傳入一個(gè)元組作為參數(shù)
元組里的元素分別是:(距離圖片左邊界距離x, 距離圖片上邊界距離y,距離圖片左邊界距離+裁剪框?qū)挾葂+w,距離圖片上邊界距離+裁剪框高度y+h)
'''
# 截取圖片中一塊寬和高都是250的
x = 0
y = 60
w = 260
h = 60
region = im.crop((x, y, x + w, y + h))
region.save(outimg)
if __name__ == "__main__":
inputpath = "D:/test/tmp/img_1/"
outpath = "D:/test/tmp/img_2/"
for i in range(1, 24):
tmpin = inputpath + str(i) + '.jpg'
tmpout = outpath + str(i) + '.jpg'
cropimg(tmpin, tmpout)
print('成功裁剪第' + str(i) + '張圖片')
以上這篇python實(shí)現(xiàn)對(duì)圖片進(jìn)行旋轉(zhuǎn),放縮,裁剪的功能就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
python飛機(jī)大戰(zhàn)pygame碰撞檢測(cè)實(shí)現(xiàn)方法分析
這篇文章主要介紹了python飛機(jī)大戰(zhàn)pygame碰撞檢測(cè)實(shí)現(xiàn)方法,結(jié)合實(shí)例形式分析了Python使用pygame實(shí)現(xiàn)飛機(jī)大戰(zhàn)游戲中碰撞檢測(cè)的原理與相關(guān)操作技巧,需要的朋友可以參考下2019-12-12
Python的Django框架中模板碎片緩存簡(jiǎn)介
這篇文章主要介紹了Python的Django框架中模板碎片緩存,包括給cache標(biāo)簽傳遞參數(shù)等方法,需要的朋友可以參考下2015-07-07
Python3用2行代碼生成動(dòng)態(tài)二維碼詳解
這篇文章主要介紹了兩行Python代碼制作動(dòng)態(tài)二維碼的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-10-10
django實(shí)現(xiàn)用戶注冊(cè)實(shí)例講解
在本篇文章里小編給大家整理的是關(guān)于django用戶注冊(cè)的相關(guān)實(shí)例內(nèi)容,有興趣的朋友們學(xué)習(xí)下。2019-10-10
PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn)
這篇文章主要介紹了PyQt5多線程防卡死和多窗口用法的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
C語(yǔ)言中的結(jié)構(gòu)體在Python中實(shí)現(xiàn)轉(zhuǎn)換
這篇文章主要為大家介紹了C語(yǔ)言中的結(jié)構(gòu)體在Python中實(shí)現(xiàn)轉(zhuǎn)換示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-06-06

