python简单实现9宫格图片实例


Posted in Python onSeptember 03, 2020

在日常生活中我们经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图。

那么我们如何自己动手实现呢?

说到切图Python 就可以实现,主要用到的 Python 库为 Pillow,安装使用 pip install pillow 即可,切图的主要步骤如下:

1、打开要处理的图片

2、判断打开的图片是否为正方形,如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分

3、保存处理完的图片

主要实现代码如下:

# 填充新的 image
def fill_image(image):
    width, height = image.size
    _length = width
    if height > width:
        _length = height
    new_image = Image.new(image.mode, (_length, _length), color='white')
    if width > height:
        new_image.paste(image, (0, int((_length - height) / 2)))
    else:
        new_image.paste(image, (int((_length - width) / 2), 0))
    return new_image

# 裁剪 image
def cut_image(image):
    width, height = image.size
    _width = int(width / 3)
    box_list = []
    for i in range(0, 3):
        for j in range(0, 3):
            box = (j * _width, i * _width, (j + 1) * _width, (i + 1) * _width)
            box_list.append(box)
            image_list = [image.crop(box) for box in box_list]
    return image_list

# 将 image 列表的里面的图片保存
def save_images(image_list, res_dir):
    index = 1
    if not os.path.exists(res_dir):
        os.mkdir(res_dir)
    for image in image_list:
        new_name = os.path.join(res_dir, str(index) + '.png')
        image.save(new_name, 'PNG')
        index += 1

我们来看一下实现效果:

python简单实现9宫格图片实例

以上就是python简单实现9宫格图片实例的详细内容,更多关于python实现朋友圈中的九宫格图片的资料请关注三水点靠木其它相关文章!

Python 相关文章推荐
Python中使用异常处理来判断运行的操作系统平台方法
Jan 22 Python
Python中subprocess模块用法实例详解
May 20 Python
Python的for和break循环结构中使用else语句的技巧
May 24 Python
python脚本爬取字体文件的实现方法
Apr 29 Python
Python对List中的元素排序的方法
Apr 01 Python
python使用Plotly绘图工具绘制气泡图
Apr 01 Python
python基于SMTP协议发送邮件
May 31 Python
python命名空间(namespace)简单介绍
Aug 10 Python
python进程池实现的多进程文件夹copy器完整示例
Nov 27 Python
logging level级别介绍
Feb 21 Python
Python IDE环境之 新版Pycharm安装详细教程
Mar 05 Python
OpenCV-Python模板匹配人眼的实例
Jun 08 Python
django使用graphql的实例
Sep 02 #Python
django数据模型中null和blank的区别说明
Sep 02 #Python
sqlalchemy实现时间列自动更新教程
Sep 02 #Python
解决Python 函数声明先后顺序出现的问题
Sep 02 #Python
解决Python3.8运行tornado项目报NotImplementedError错误
Sep 02 #Python
详解python with 上下文管理器
Sep 02 #Python
Python 的 __str__ 和 __repr__ 方法对比
Sep 02 #Python
You might like
聊天室php&mysql(二)
2006/10/09 PHP
Fatal error: Call to undefined function curl_init()解决方法
2010/04/09 PHP
php SQL Injection with MySQL
2011/02/27 PHP
php中ftp_chdir与ftp_cdup函数用法
2014/11/18 PHP
php中使用url传递数组的方法
2015/02/11 PHP
php写入数据到CSV文件的方法
2015/03/14 PHP
PHP实现添加购物车功能
2017/03/06 PHP
PHP简单装饰器模式实现与用法示例
2017/06/22 PHP
PHP面向对象程序设计之对象的遍历操作示例
2019/06/12 PHP
JS常用正则表达式总结
2013/11/12 Javascript
javascript将数字转换整数金额大写的方法
2015/01/27 Javascript
js使用post 方式打开新窗口
2015/02/26 Javascript
jQuery判断数组是否包含了指定的元素
2015/03/10 Javascript
CSS中position属性之fixed实现div居中
2015/12/14 Javascript
谈谈我对JavaScript中typeof和instanceof的深入理解
2015/12/25 Javascript
浅析BootStrap Treeview的简单使用
2016/10/12 Javascript
Require.js的基本用法详解
2017/07/03 Javascript
JavaScript动态加载重复绑定问题
2018/04/01 Javascript
小程序实现五星点评效果
2018/11/03 Javascript
jQuery选择器之基本过滤选择器用法实例分析
2019/02/19 jQuery
jQuery Migrate 插件用法实例详解
2019/05/22 jQuery
electron+vue实现div contenteditable截图功能
2020/01/07 Javascript
解决Echarts2竖直datazoom滑动后显示数据不全的问题
2020/07/20 Javascript
Node.js fs模块原理及常见用途
2020/10/22 Javascript
[00:47]DOTA2荣耀之路6:玩不了啦!
2018/05/30 DOTA
跟老齐学Python之网站的结构
2014/10/24 Python
pygame实现五子棋游戏
2019/10/29 Python
Python实现队列的方法示例小结【数组,链表】
2020/02/22 Python
python小白切忌乱用表达式
2020/05/29 Python
请写出char *p与"零值"比较的if语句
2014/09/24 面试题
合唱兴趣小组活动总结
2014/07/10 职场文书
佛光寺导游词
2015/02/10 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
2015年小学重阳节活动总结
2015/07/29 职场文书
小学校园广播稿
2015/08/18 职场文书
浅谈css实现背景颜色半透明的两种方法
2021/12/06 HTML / CSS