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 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 Python
python实现中文输出的两种方法
May 09 Python
Android 兼容性问题:java.lang.UnsupportedOperationException解决办法
Mar 19 Python
python中关于for循环的碎碎念
Jun 30 Python
Python中Numpy包的安装与使用方法简明教程
Jul 03 Python
pyhton中__pycache__文件夹的产生与作用详解
Nov 24 Python
opencv resize图片为正方形尺寸的实现方法
Dec 26 Python
PyTorch 对应点相乘、矩阵相乘实例
Dec 27 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
解决c++调用python中文乱码问题
Jul 29 Python
python logging 重复写日志问题解决办法详解
Aug 04 Python
python包的导入方式总结
Mar 02 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
为查询结果建立向后/向前按钮
2006/10/09 PHP
PHP输出九九乘法表代码实例
2015/03/27 PHP
Zend Framework教程之配置文件application.ini解析
2016/03/10 PHP
PHP实现简单的计算器
2020/08/28 PHP
js 键盘记录实现(兼容FireFox和IE)
2010/02/07 Javascript
Js setInterval与setTimeout(定时执行与循环执行)的代码(可以传入参数)
2010/06/11 Javascript
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
Javascript和HTML5利用canvas构建Web五子棋游戏实现算法
2013/07/17 Javascript
JS批量修改PS中图层名称的方法
2014/01/26 Javascript
javascript 密码框防止用户粘贴和复制的实现代码
2014/02/17 Javascript
jQuery实现统计复选框选中数量
2014/11/24 Javascript
jQuery中:last选择器用法实例
2014/12/30 Javascript
jQuery打字效果实现方法(附demo源码下载)
2015/12/18 Javascript
javascript实现不同颜色Tab标签切换效果
2016/04/27 Javascript
Jquery通过ajax请求NodeJS返回json数据实例
2016/11/08 NodeJs
详解angular中通过$location获取路径(参数)的写法
2017/03/21 Javascript
深入理解Angular中的依赖注入
2017/06/26 Javascript
Js自定义多选框效果的实例代码
2017/07/05 Javascript
js实现把时间戳转换为yyyy-MM-dd hh:mm 格式(es6语法)
2017/12/28 Javascript
微信web端后退强制刷新功能的实现代码
2018/03/04 Javascript
Webpack devServer中的 proxy 实现跨域的解决
2018/06/15 Javascript
element-ui中的select下拉列表设置默认值方法
2018/08/24 Javascript
antd-mobile ListView长列表的数据更新遇到的坑
2020/04/08 Javascript
[46:47]2014 DOTA2国际邀请赛中国区预选赛 DT VS HGT
2014/05/22 DOTA
[02:19]2014DOTA2国际邀请赛 专访820少年们一起去追梦吧
2014/07/14 DOTA
[01:17]炒鸡美酒第四天TA暴走
2018/06/05 DOTA
python3+mysql查询数据并通过邮件群发excel附件
2018/02/24 Python
基于python实现简单日历
2018/07/28 Python
keras中模型训练class_weight,sample_weight区别说明
2020/05/23 Python
解决python3中os.popen()出错的问题
2020/11/19 Python
英国门把手公司:Door Handle Company
2019/05/12 全球购物
英国家居用品和床上用品零售商:P&B Home
2020/01/16 全球购物
2014年村计划生育工作总结
2014/11/14 职场文书
颐和园导游词400字
2015/01/30 职场文书
高中议论文(范文2篇)
2019/08/19 职场文书
python自动化调用百度api解决验证码
2021/04/13 Python