# 本文教你用了python图片剪裁

> 作者/来源: UCloud 运营管理员
> 发布时间: 2023-01-12T05:45:00.000Z
> 分类: 推荐奖励
> 标签: Python
> 原文链接: http://117.50.162.249:3000/yun/articles/637

---

# 本文教你用了python图片剪裁

> 来源: https://www.ucloud.cn/yun/130261.html
> 作者: 89542767
> 发布日期: 发布于2023-01-12 13:45

Python语言的表达照片处理使人们常常所使用的层面,那样我们应该怎么实现图片的裁切呢?接下来本文关键为大家介绍了关于用python图片剪裁的资料,原文中根据案例编码推荐的十分详尽,必须的小伙伴可以借鉴一下

　　怎么使用python图片剪裁

![01.png](https://ucloud-blog.cn-bj.ufileos.com/articles/130261/images/130261_000.png)

　　以上如图所示，这也是1张包括了各种象棋棋子的照片。我们应该将在其中每个棋盘都裁切出去，这时可以借助python的PIL库成功。

　　一、组装PIL库

　　假如先前未安装过PIL库，在python3条件下，cmd键入pipinstallpillow就可以组装成功。

　　二、搭建构思

　　大家试一试，将左上方灰黑色将裁切出来并存图。

　　首先开启绘图，扩大再扩大，再启用边框线，寻找把这个棋盘的左上方座标和右上方座标。能够看见右下方的座标约是（50，50）。左上方是（0，0）。由于全部图片的座标的起始点都是在左上方。

![02.png](https://ucloud-blog.cn-bj.ufileos.com/articles/130261/images/130261_001.png)

```
　　fromPILimportImage
　　img=Image.open('chess.png')##开启chess.png文档，并传参给img
　　region=img.crop((0,0,50,50))##0,0提出要裁切的区域的左上方座标，50,50表明右下方。
　　region.save('举例说明.png')##将裁切出来的图片保存到举例说明.png
```

![03.png](https://ucloud-blog.cn-bj.ufileos.com/articles/130261/images/130261_002.png)

　　能够看见是裁切通过了，需注意，大家要把每个棋盘都裁切出来，难道还要一个个的看座标、编辑程序里的座标，随后一遍遍地地打开程序去图片剪裁吗？那不如直接用绘图裁切或许还快些。咱们就好好想想，就会发现每个棋盘之间间距是有规律，那我们可不可以试着用for循环去完成大批量地裁切呢？

　　三、详细编码

　　再度开启绘图，不难发现规律性。前排灰黑色子左上方的座标是（0，0），x坐标每一次加50，加7次，所以也是（0，0）-（300，0）；右下方同理可得（50，0）-（350，0）；二排乃是（0，50）-（300，50）和（50，100）-（350，100）。懂了规律性以后，立即逐渐写代码

```
　　fromPILimportImage
　　chessred=['jj','ss','xx','mm','cc','pp','bb']##红棋取名，随意起，不必同样就可以了
　　chessblack=['j','s','x','m','c','p','b']##黑棋取名，随意起，不必同样就可以了
　　img=Image.open('./chess.png')##开启chess.png，并传参给img
　　defcropimg():
　　fori,j,zinzip(range(0,350,50),chessblack,chessred):
　　region=img.crop((i,0,i+50,50))##裁切前排黑棋棋盘
　　region.save(f'./test/{j}.png')##储存前排黑棋棋盘
　　region=img.crop((i,50,i+50,100))##裁切二排红棋棋盘
　　region.save(f'./test/{z}.png')##储存二排红棋棋盘
　　cropimg()
```

![04.png](https://ucloud-blog.cn-bj.ufileos.com/articles/130261/images/130261_003.png)

　　打开文档，全部裁切后的图片早已被储存。