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 对txt中每行内容进行批量替换的方法
Jul 11 Python
python3 flask实现文件上传功能
Mar 20 Python
python 3.6.5 安装配置方法图文教程
Sep 18 Python
python 不同方式读取文件速度不同的实例
Nov 09 Python
浅谈Python中的全局锁(GIL)问题
Jan 11 Python
python二元表达式用法
Dec 04 Python
提升python处理速度原理及方法实例
Dec 25 Python
python输出pdf文档的实例
Feb 13 Python
Python flask框架实现浏览器点击自定义跳转页面
Jun 04 Python
如何基于matlab相机标定导出xml文件
Nov 02 Python
pycharm 实现光标快速移动到括号外或行尾的操作
Feb 05 Python
解决Pyinstaller打包软件失败的一个坑
Mar 04 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
PHP的开合式多级菜单程序
2006/10/09 PHP
PHP 5.0对象模型深度探索之对象复制
2008/03/27 PHP
PHP 获取远程文件大小的3种解决方法
2013/07/11 PHP
PHP获取当前URL路径的处理方法(适用于多条件筛选列表)
2017/02/10 PHP
PHP中递归的实现实例详解
2017/11/14 PHP
漂亮的仿flash菜单,来自蓝色经典
2006/06/26 Javascript
javascript实现动态CSS换肤技术的脚本
2007/06/29 Javascript
extjs 学习笔记 四 带分页的grid
2009/10/20 Javascript
XENON基于JSON变种
2010/07/27 Javascript
在JavaScript中获取请求的URL参数[正则]
2010/12/25 Javascript
jquery入门必备的基本认识及实例(整理)
2013/06/24 Javascript
JQuery解析HTML、JSON和XML实例详解
2014/03/29 Javascript
Ext JS框架中日期函数的用法及日期选择控件的实现
2016/05/21 Javascript
js倒计时小实例(多次定时)
2016/12/08 Javascript
js实现图片切换(动画版)
2016/12/25 Javascript
Bootstrap笔记—折叠实例代码
2017/03/13 Javascript
详解Puppeteer 入门教程
2018/05/09 Javascript
Vue实现一个无限加载列表功能
2018/11/13 Javascript
ES6的解构赋值实例详解
2019/05/06 Javascript
浅谈javascript如何获取文件后缀名
2020/08/07 Javascript
Python实现k-means算法
2018/02/23 Python
python使用Matplotlib画饼图
2018/09/25 Python
Python实现将多个空格换为一个空格.md的方法
2018/12/20 Python
pyqt5实现俄罗斯方块游戏
2019/01/11 Python
python实现将视频按帧读取到自定义目录
2019/12/10 Python
使用SimpleITK读取和保存NIfTI/DICOM文件实例
2020/07/01 Python
收藏!10个免费高清视频素材网站!【设计、视频剪辑必备】
2021/03/18 杂记
台湾网友喜爱的综合型网路购物商城:Yahoo! 奇摩购物中心
2018/03/10 全球购物
澳大利亚最好的厨具店:Kitchen Warehouse
2018/03/13 全球购物
医药学专业大学生职业生涯规划书论文
2014/01/21 职场文书
电气自动化求职信
2014/06/24 职场文书
意外伤害赔偿协议书范文
2014/09/23 职场文书
2014年党的群众路线教育实践活动整改措施(个人版)
2014/09/25 职场文书
2015年财务试用期工作总结
2014/12/24 职场文书
2015年度内部审计工作总结
2015/05/20 职场文书
幼儿园中班班级总结
2015/08/10 职场文书