前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python切割图片成九宫格

Python切割图片成九宫格

原创
作者头像
诸葛青云
修改2019-10-08 12:22:41
1.1K0
修改2019-10-08 12:22:41
举报

这篇文字讲述如何使用Python把一张完整的大图切割成9份小图片,制作朋友圈九宫格图文分享。 原图如下:

Image

我们想要利用这张图制作高逼格的九宫格朋友圈分享。

达到类似于这样的效果:

实现原理非常简单,那就是利用PIL库对原图不断画小区域然后切下来存储成新的小图片。 假设每一个格子的宽和高分别是w、h,那么第row行(从0开始计数),第col列(从0开始计数)的格子左上角坐标和右下角坐标分别是(col * w, row * h),(col * w + w, r * h + h)

code snippet:

代码语言:javascript
复制
#! /usr/local/bin/python3
# -*- coding: utf-8 -*-

from PIL import Image

def cut_image(image):
    width, height = image.size
    item_width = width / 3.0
    item_height = height / 3.0
    box_list = []
    for row in range(0,3):
        for col in range(0,3):
            box = (col * item_width, row * item_height,( col + 1 ) * item_width,( row + 1 ) * item_height)
            box_list.append( box )

    image_list = [image.crop(box) for box in box_list]
    return image_list

def save_images(image_list):
    dirName = 'output'
    if False == os.path.exists( dirName ):
        os.makedirs( dirName )
    index = 1
    for image in image_list:
        image.save('./output/python'+str(index) + '.png', 'PNG')
        index += 1

if __name__ == '__main__':
    image = Image.open( "use.png" )
    image_list = cut_image(image)
    save_images(image_list)

为了能在朋友圈中预览时看到所有图片的完整样子,建议保证自己的原始图片是正方形的,然后再运行这个脚本,在output中得到九张图片。最后,嗯,就可以去秀了!

小编给大家推荐一个学习氛围超好的地方,鼠标放到头像上就能看到

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档