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实现扫描指定目录下的子目录及文件的方法
Jul 16 Python
跟老齐学Python之复习if语句
Oct 02 Python
Python中用Decorator来简化元编程的教程
Apr 13 Python
python开启多个子进程并行运行的方法
Apr 18 Python
python对指定目录下文件进行批量重命名的方法
Apr 18 Python
使用Python脚本将绝对url替换为相对url的教程
Apr 24 Python
Python切片操作去除字符串首尾的空格
Apr 22 Python
使用Python paramiko模块利用多线程实现ssh并发执行操作
Dec 05 Python
Django bulk_create()、update()与数据库事务的效率对比分析
May 15 Python
python中tab键是什么意思
Jun 18 Python
CocosCreator ScrollView优化系列之分帧加载
Apr 14 Python
python 多态 协议 鸭子类型详解
Nov 27 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生成缩略图的类代码
2008/10/02 PHP
php FPDF类库应用实现代码
2009/03/20 PHP
php下把数组保存为文件格式的实例应用
2010/02/08 PHP
thinkPHP使用pclzip打包备份mysql数据库的方法
2016/04/30 PHP
Laravel 5.5基于内置的Auth模块实现前后台登陆详解
2017/12/21 PHP
PHP7 标准库修改
2021/03/09 PHP
javascript 日期常用的方法
2009/11/11 Javascript
起点页面传值js,有空研究学习下
2010/01/25 Javascript
ajax不执行success回调而是执行了error回调
2012/12/10 Javascript
node.js中的path.sep方法使用说明
2014/12/08 Javascript
检测一个函数是否是JavaScript原生函数的小技巧
2015/03/13 Javascript
全面解析Bootstrap中tooltip、popover的使用方法
2016/06/13 Javascript
JavaScript程序中实现继承特性的方式总结
2016/06/24 Javascript
详解angular2封装material2对话框组件
2017/03/03 Javascript
html+javascript+bootstrap实现层级多选框全层全选和多选功能
2017/03/09 Javascript
canvas绘制一个常用的emoji表情
2017/03/30 Javascript
微信小程序中使用Promise进行异步流程处理的实例详解
2017/08/17 Javascript
JS实现判断图片是否加载完成的方法分析
2018/07/31 Javascript
QRCode.js二维码生成并能长按识别
2018/10/16 Javascript
Vue组件通信中非父子组件传值知识点总结
2019/12/05 Javascript
如何基于js判断浏览器版本
2020/02/20 Javascript
[01:11]steam端dota2实名认证操作流程视频
2021/03/11 DOTA
在Python中使用mongoengine操作MongoDB教程
2015/04/24 Python
python+pyqt5编写md5生成器
2019/03/18 Python
利用python在大量数据文件下删除某一行的例子
2019/08/21 Python
Python创建空列表的字典2种方法详解
2020/02/13 Python
Python实现上下文管理器的方法
2020/08/07 Python
Python 2.6.6升级到Python2.7.15的详细步骤
2020/12/14 Python
C语言中break与continue的区别
2012/07/12 面试题
学生档案自我鉴定
2013/10/07 职场文书
宿舍保安职务说明书
2014/02/25 职场文书
市场营销策划方案
2014/06/11 职场文书
2014年世界艾滋病日宣传活动总结
2014/11/18 职场文书
2016优秀员工先进事迹材料
2016/02/25 职场文书
pytorch 如何使用amp进行混合精度训练
2021/05/24 Python
JavaScript圣杯布局与双飞翼布局实现案例详解
2022/08/05 Javascript