专栏首页诸葛青云的专栏Python切割图片成九宫格
原创

Python切割图片成九宫格

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

Image

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

达到类似于这样的效果:

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

code snippet:

#! /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中得到九张图片。最后,嗯,就可以去秀了!

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

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 老板丢给我60万行的Excel数据,幸亏我会Python,不然就惨了

    一个朋友在某运动品牌公司上班,老板给他布置了一个处理客户订单数据的任务。要求是根据订单时间和客户id判断生成四个新的数据:

    诸葛青云
  • 老板丢给我60万行的Excel数据,幸亏我会Python,不然就惨了

    一个朋友在某运动品牌公司上班,老板给他布置了一个处理客户订单数据的任务。要求是根据订单时间和客户id判断生成四个新的数据:

    诸葛青云
  • 运用Python这么多年,总结Python开发者节省时间的10个方法

    Python 是一个美丽的语言,可以激发用户对它的爱。所以如果你试图加入程序员行列,或者你有点厌倦C++,Perl,Java 和其他语言,我推荐你尝试Pytho...

    诸葛青云
  • IE错误汇总

    出错背景:vue-cli结合webpack搭建的项目,在IE11运行报错,报错信息会指出错误出处,比如:“app.js (5164,1)”。已安装es6转换es...

    城市中的游牧民族
  • angularjs小练习(分别通过ng-repeat和ng-option动态生成select下拉框)

    小小许
  • angularjs小练习(分别通过ng-repeat和ng-option动态生成select下拉框)

    小小许
  • 福利 | 在微信这样送礼物,任何人都不会拒绝你!

    于是,问题来了:在这种情况下,如何帮助知晓君,送出一份妹子绝对会收下,并感到满意的礼物呢?

    知晓君
  • 目标检测第2步-数据准备

    本文在学习《Tensorflow object detection API 搭建属于自己的物体识别模型(2)——训练并使用自己的模型》的基础上优化并总结,此博客...

    潇洒坤
  • Python3网络爬虫实战-2、请求库安

    在上一节我们了解了 ChromeDriver 的配置方法,配置完成之后我们便可以用 Selenium 来驱动 Chrome 浏览器来做相应网页的抓取。 那么对于...

    py3study
  • 百度APP移动端网络深度优化实践分享(一):DNS优化篇

    网络优化是客户端几大技术方向中公认的一个深度领域,所以百度App给大家带来网络深度优化系列文章。

    JackJiang

扫码关注云+社区

领取腾讯云代金券