安装
pip install pillow
我们使用的是 Image 中的 crop(box) 功能, 它需要一个参数 box, 元组 类型, 元组包括 4 个元素,
(距离图片左边界距离 x, 距离图片上边界距离 y, 距离图片左边界距离 + 裁剪框宽度 x+w, 距离图片上边界距离 + 裁剪框高度 y+h)
(x, y, x+w, y+h), x,y 是裁剪框左上角的坐标, x+w,y+h 是右下角的坐标
裁剪
- # -*-coding:utf-8-*-
- from PIL import Image
- im = Image.open("renren.jpeg")
- # 图片的宽度和高度
- img_size = im.size
- print("图片宽度和高度分别是 {}".format(img_size))
- '''
- 裁剪: 传入一个元组作为参数
- 元组里的元素分别是:(距离图片左边界距离 x, 距离图片上边界距离 y, 距离图片左边界距离 + 裁剪框宽度 x+w, 距离图片上边界距离 + 裁剪框高度 y+h)
- '''
- # 截取图片中一块宽和高都是 250 的
- x = 100
- y = 100
- w = 250
- h = 250
- region = im.crop((x, y, x+w, y+h))
- region.save("./crop_test1.jpeg")
- # 截取图片中一块宽是 250 和高都是 300 的
- x = 100
- y = 100
- w = 250
- h = 300
- region = im.crop((x, y, x+w, y+h))
- region.save("./crop_test2.jpeg")
平均切割成 4 块
- # -*-coding:utf-8-*-
- from PIL import Image
- im = Image.open("renren.jpeg")
- # 图片的宽度和高度
- img_size = im.size
- # 把图片平均分成 4 块
- # 第 1 块
- w = img_size[0]/2.0
- h = img_size[1]/2.0
- x = 0
- y = 0
- region = im.crop((x, y, x+w, y+h))
- region.save("./crop_average-1.jpeg")
- # 第 2 块
- x = w
- y = h
- region = im.crop((x, y, x+w, y+h))
- region.save("./crop_average-2.jpeg")
- # 第 3 块
- x = 0
- y = h
- region = im.crop((x, y, x+w, y+h))
- region.save("./crop_average-3.jpeg")
- # 第 4 块
- x = w
- y = 0
- region = im.crop((x, y, x+w, y+h))
- region.save("./crop_average-4.jpeg")
旋转
- # -*-coding:utf-8-*-
- from PIL import Image
- im = Image.open("renren.jpeg")
- # 旋转图片
- # 左旋转 45 度
- im = im.rotate(45)
- im.save("./rotate-l45.jpeg")
- # 右旋转 30 度
- im = im.rotate(-30)
- im.save("./rotate-r30.jpeg")
- # 右旋转 45 度, 并裁剪一块
- im = im.rotate(-30)
- x = 50
- y = 50
- w = 150
- h = 150
- region = im.crop((x, y, x+w, y+h))
- region.save("./rotate-r30-crop.jpeg")
来源: http://www.bubuko.com/infodetail-2948935.html