1. 本际云推荐 - 专业推荐VPS、服务器,IDC点评首页
  2. 云主机运维
  3. VPS运维

本文教你用了python图片剪裁

用Python裁切图片

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

本文教你用了python图片剪裁

如何使用Python图片剪裁

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

组装PIL库

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

搭建构思

大家试一试,将左上方灰黑色将裁切出来并存图。首先开启绘图,扩大再扩大,再启用边框线,寻找把这个棋盘的左上方座标和右上方座标。能够看见右下方的座标约是(50,50)。左上方是(0,0)。由于全部图片的座标的起始点都是在左上方。

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

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

详细编码

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

from PIL import Image
chessred=['jj','ss','xx','mm','cc','pp','bb']##红棋取名,随意起,不必同样就可以了
chessblack=['j','s','x','m','c','p','b']##黑棋取名,随意起,不必同样就可以了
img=Image.open('./chess.png')##开启chess.png,并传参给img
def cropimg():
    for i,j,z in zip(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()

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

原创文章,作者:小编小本本,如若转载,请注明出处:https://www.benjiyun.com/yunzhujiyunwei/vps-yunwei/5785.html