在命令行使用PIP安装库:
pip install pillow
按下win+R,弹出界面输入cmd回车,然后输入上面命令等待安装完成即可
直接上代码:
加了两个功能:拼接图片 和 分割图片
拼接图片暂时只能拼接两个大小相同的图片
分割图片 可以生成 四宫格 和 九宫格的图片
#图片处理.py
from PIL import Image
def yasuo(way):
x, y = im.size
a = eval(input("请输入想要缩小的倍数(0-1):"))
if 0 < a <= 1:
b = 1/a
im.thumbnail((x//b, y//b))
way1 = way[:-5] + '1' + way[-5:]
im.save(way1)
print("缩小后的尺寸:{}".format(im.size))
print("图片已保存:{}".format(way1))
else:
print("错误!请输入0-1之间的数字!")
yasuo(way)
return(way1)
def xuanzhuan(way):
q = input("请选择:\n[0]逆时针旋转 [1]左右翻转 [2]上下翻转\n")
if q == '0':
q1 = abs(eval(input("请输入旋转角度:")))
im1 = im.rotate(q1)
way2 = way[:-5] + '2' + way[-5:]
im1.save(way2)
print("旋转{}度图片已保存:{}".format(q1,way2))
elif q == '1':
im1 = im.transpose(Image.FLIP_LEFT_RIGHT)
way2 = way[:-5] + '3' + way[-5:]
im1.save(way2)
print("左右翻转图片已保存:{}".format(way2))
elif q == '2':
im1 = im.transpose(Image.FLIP_TOP_BOTTOM)
way2 = way[:-5] + '4' + way[-5:]
im1.save(way2)
print("上下翻转图片已保存:{}".format(way2))
else:
print("输入错误!")
xuanzhuan(way)
return(way2)
def pinjie(way):
way_p =Image.open(input("请输入要拼接图片路径:"))
x, y = im.size
target = Image.new('RGB', (x * 2, y * 1))
a = 0
a1 = x # 图片距离左边的大小
b = b1 = 0 # 图片距离上边的大小
c = x
c1 = x*2 # 图片距离左边的大小 + 图片自身宽度
d = d1 = y # 图片距离上边的大小 + 图片自身高度
target.paste(im, (a, b, c, d))
target.paste(way_p, (a1, b1, c1, d1))
way1 = way[:-5] + '5' + way[-5:]
target.save(way1)
print("拼接图片已保存:{}".format(way1))
return(way1)
def qiege(way):
x, y = im.size
left = 0 #图片距离左边的宽度乘积值
shang = 0 #图片距离上边的宽度乘积值
index = 6 #图片名
q = input("请选择: [0]四等分 [1]九等分\n")
if q == '0':
x,y = x/2,y/2
for i in range(4):
if i == 2: # 当循环到第三个值时,需要切第二行的图片
shang += 1
left = 0
a = x * left # 图片距离左边的大小
b = y * shang # 图片距离上边的大小
c = x * (left + 1) # 图片距离左边的大小 + 图片自身宽度
d = y * (shang + 1) # 图片距离上边的大小 + 图片自身高度
croping = im.crop((a,b,c,d))
croping.save(way[:-5] + str(index) + way[-5:])
index += 1
left += 1
print("四宫格图片已保存!")
elif q == '1':
x,y = x/3,y/3
for i in range(9):
if i in [3,6]: # 当循环到第四和七个值时,需要切第二三行的图片
shang += 1
left = 0
a = x * left # 图片距离左边的大小
b = y * shang # 图片距离上边的大小
c = x * (left + 1) # 图片距离左边的大小 + 图片自身宽度
d = y * (shang + 1) # 图片距离上边的大小 + 图片自身高度
croping = im.crop((a,b,c,d))
croping.save(way[:-5] + str(index) + way[-5:])
index += 1
left += 1
print("九宫格图片已保存!")
else:
print("输入错误!")
qiege(way)
way = input("请输入图片路径:")
im = Image.open(way)
print(im.format, im.size, im.mode)
def main():
q = input("请选择要做的操作:\n【0】压缩图片 【1】旋转图片 【2】横向拼接图片 【3】分割图片\n")
if q == '0':
yasuo(way)
elif q == '1':
xuanzhuan(way)
elif q == '2':
pinjie(way)
elif q == '3':
qiege(way)
else:
print("输入错误!请重新输入")
main()
main()
新生成的文件和原文件在同一文件夹下