Python切图九宫格的实现方法


Posted in Python onOctober 10, 2019

本文介绍了Python切图九宫格的实现方法,分享给大家,具体如下

Python切图九宫格的实现方法

# -*- coding: utf-8 -*-
'''
将一张图片填充为正方形后切为9张图
'''
from PIL import Image
import sys
#将图片填充为正方形
def fill_image(image):
  width, height = image.size
  #选取长和宽中较大值作为新图片的
  new_image_length = width if width > height else height
  #生成新图片[白底]
  new_image = Image.new(image.mode, (new_image_length, new_image_length), color='white')
  #将之前的图粘贴在新图上,居中
  if width > height:#原图宽大于高,则填充图片的竖直维度
    #(x,y)二元组表示粘贴上图相对下图的起始位置
    new_image.paste(image, (0, int((new_image_length - height) / 2)))
  else:
    new_image.paste(image, (int((new_image_length - width) / 2),0))
  return new_image
#切图
def cut_image(image):
  width, height = image.size
  item_width = int(width / 3)
  box_list = []
  # (left, upper, right, lower)
  for i in range(0,3):#两重循环,生成9张图片基于原图的位置
    for j in range(0,3):
      #print((i*item_width,j*item_width,(i+1)*item_width,(j+1)*item_width))
      box = (j*item_width,i*item_width,(j+1)*item_width,(i+1)*item_width)
      box_list.append(box)

  image_list = [image.crop(box) for box in box_list]
  return image_list
#保存
def save_images(image_list):
  index = 1
  for image in image_list:
    image.save('./python'+str(index) + '.png', 'PNG')
    index += 1

if __name__ == '__main__':
  file_path = "python.jpeg"
  image = Image.open(file_path)
  #image.show()
  image = fill_image(image)
  image_list = cut_image(image)
  save_images(image_list)

Python切图九宫格的实现方法 Python切图九宫格的实现方法 Python切图九宫格的实现方法

Python切图九宫格的实现方法 Python切图九宫格的实现方法 Python切图九宫格的实现方法

Python切图九宫格的实现方法 Python切图九宫格的实现方法 Python切图九宫格的实现方法

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python获取各操作系统硬件信息的方法
Jun 03 Python
在Django框架中编写Context处理器的方法
Jul 20 Python
python操作字典类型的常用方法(推荐)
May 16 Python
python中如何正确使用正则表达式的详细模式(Verbose mode expression)
Nov 08 Python
python3 unicode列表转换为中文的实例
Oct 26 Python
Python实现二维曲线拟合的方法
Dec 29 Python
解决在Python编辑器pycharm中程序run正常debug错误的问题
Jan 17 Python
Python下简易的单例模式详解
Apr 08 Python
python实现控制COM口的示例
Jul 03 Python
Python发送手机动态验证码代码实例
Feb 28 Python
使用python实现飞机大战游戏
Mar 23 Python
pycharm配置QtDesigner的超详细方法
Jan 25 Python
python 3.7.4 安装 opencv的教程
Oct 10 #Python
Django实现auth模块下的登录注册与注销功能
Oct 10 #Python
导入tensorflow时报错:cannot import name 'abs'的解决
Oct 10 #Python
关于pycharm中pip版本10.0无法使用的解决办法
Oct 10 #Python
超实用的 30 段 Python 案例
Oct 10 #Python
使用浏览器访问python写的服务器程序
Oct 10 #Python
详解Python time库的使用
Oct 10 #Python
You might like
与数据库连接
2006/10/09 PHP
php二维数组排序详解
2013/11/06 PHP
php模板引擎技术简单实现
2016/03/15 PHP
浅谈socket同步和异步、阻塞和非阻塞、I/O模型
2016/12/15 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
jquery tab插件精简版分享
2011/09/10 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
nw.js实现类似微信的聊天软件
2015/03/16 Javascript
JavaScript搜索字符串并将搜索结果返回到字符串的方法
2015/04/06 Javascript
JS实现方向键切换输入框焦点的方法
2015/08/19 Javascript
解决JS请求服务器gbk文件乱码的问题
2015/10/16 Javascript
12种JavaScript常用的MVC框架比较分析
2015/11/16 Javascript
js完整倒计时代码分享
2016/09/18 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
JS设计模式之策略模式概念与用法分析
2018/02/05 Javascript
vue 解决遍历对象显示的顺序不对问题
2019/11/07 Javascript
JavaScript 中的无穷数(Infinity)详解
2020/02/13 Javascript
在Python中使用NLTK库实现对词干的提取的教程
2015/04/08 Python
python使用smtplib模块通过gmail实现邮件发送的方法
2015/05/08 Python
python遍历目录的方法小结
2016/04/28 Python
python下读取公私钥做加解密实例详解
2017/03/29 Python
python中logging包的使用总结
2018/02/28 Python
Python中property函数用法实例分析
2018/06/04 Python
python检测主机的连通性并记录到文件的实例
2018/06/21 Python
python得到windows自启动列表的方法
2018/10/14 Python
通过python将大量文件按修改时间分类的方法
2018/10/17 Python
用Python实现数据的透视表的方法
2018/11/16 Python
基于django和dropzone.js实现上传文件
2020/11/24 Python
Python之Sklearn使用入门教程
2021/02/19 Python
硅酸盐工业控制专业应届生求职信
2013/11/02 职场文书
企业法人代表证明书
2014/09/27 职场文书
2014年学校教学工作总结
2014/12/06 职场文书
拾金不昧通报表扬范文
2015/05/05 职场文书
铁人观后感
2015/06/16 职场文书
python 批量压缩图片的脚本
2021/06/02 Python
Java 实现限流器处理Rest接口请求详解流程
2021/11/02 Java/Android