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 相关文章推荐
django模型中的字段和model名显示为中文小技巧分享
Nov 18 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
Python中max函数用法实例分析
Jul 17 Python
Python中Collections模块的Counter容器类使用教程
May 31 Python
浅谈django中的认证与登录
Oct 31 Python
python 出现SyntaxError: non-keyword arg after keyword arg错误解决办法
Feb 14 Python
Python虚拟环境virtualenv的安装与使用详解
May 28 Python
Python使用Shelve保存对象方法总结
Jan 28 Python
Pycharm 2020最新永久激活码(附最新激活码和插件)
Sep 17 Python
pycharm内无法import已安装的模块问题解决
Feb 12 Python
python统计函数库scipy.stats的用法解析
Feb 25 Python
一文读懂Python 枚举
Aug 25 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文件
2007/01/04 PHP
PHP中文处理 中文字符串截取(mb_substr)和获取中文字符串字数
2011/11/10 PHP
php 批量替换html标签的实例代码
2013/11/26 PHP
php 访问oracle 存储过程实例详解
2017/01/08 PHP
PHP面向对象五大原则之里氏替换原则(LSP)详解
2018/04/08 PHP
推荐:极酷右键菜单
2006/11/29 Javascript
js实现类似新浪微博首页内容渐显效果的方法
2015/04/10 Javascript
JS实现表单中checkbox对勾选中增加边框显示效果
2015/08/21 Javascript
JS三级可折叠菜单实现方法
2016/02/29 Javascript
JavaScript通过HTML的class来获取HTML元素的方法总结
2016/05/24 Javascript
JS实现六位字符密码输入器功能
2016/08/19 Javascript
Javascript 实现简单计算器实例代码
2016/10/23 Javascript
Angular2学习笔记——详解NgModule模块
2016/12/02 Javascript
详解Vue 实例中的生命周期钩子
2017/03/21 Javascript
vue.js学习之UI组件开发教程
2017/07/03 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
JavaScript之Blob对象类型的具体使用方法
2019/11/29 Javascript
NUXT SSR初级入门笔记(小结)
2019/12/16 Javascript
微信小程序实现电子签名功能
2020/07/29 Javascript
[02:48]DOTA2英雄基础教程 拉席克
2013/12/12 DOTA
python的类方法和静态方法
2014/12/13 Python
在Django的上下文中设置变量的方法
2015/07/20 Python
pandas 把数据写入txt文件每行固定写入一定数量的值方法
2018/12/28 Python
python基于C/S模式实现聊天室功能
2019/01/09 Python
使用python socket分发大文件的实现方法
2019/07/08 Python
Python3 assert断言实现原理解析
2020/03/02 Python
英国评分最高的女性剃须刀订阅盒:FFS Beauty
2018/01/25 全球购物
什么是静态路由?什么是动态路由?各自的特点是什么?
2015/09/16 面试题
会议邀请书范文
2014/02/02 职场文书
大学共青团员个人自我评价
2014/04/16 职场文书
学生操行评语大全
2014/04/24 职场文书
安全保证书范文
2014/04/29 职场文书
质量标语大全
2014/06/12 职场文书
杭白菊导游词
2015/02/10 职场文书
vue实现列表垂直无缝滚动
2022/04/08 Vue.js