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 25 Python
Python中的多重装饰器
Apr 11 Python
python类继承与子类实例初始化用法分析
Apr 17 Python
Python urllib、urllib2、httplib抓取网页代码实例
May 09 Python
用python制作游戏外挂
Jan 04 Python
Python 获取div标签中的文字实例
Dec 20 Python
Python3.6.x中内置函数总结及讲解
Feb 22 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
python银行系统实现源码
Oct 25 Python
解决tensorflow训练时内存持续增加并占满的问题
Jan 19 Python
详解pyqt5的UI中嵌入matplotlib图形并实时刷新(挖坑和填坑)
Aug 07 Python
Django debug为True时,css加载失败的解决方案
Apr 24 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简单命令代码集锦
2007/09/24 PHP
php+mysql+jquery实现日历签到功能
2017/02/27 PHP
js下通过getList函数实现分页效果的代码
2010/09/17 Javascript
jQuery页面图片伴随滚动条逐渐显示的小例子
2013/03/21 Javascript
用示例说明filter()与find()的用法以及children()与find()的区别分析
2013/04/26 Javascript
js 将json字符串转换为json对象的方法解析
2013/11/13 Javascript
JS中的构造函数详细解析
2014/03/10 Javascript
jquery表单验证插件formValidator使用方法
2016/04/01 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
关于Vue.js一些问题和思考学习笔记(2)
2016/12/02 Javascript
jQuery实现获取h1-h6标题元素值的方法
2017/03/06 Javascript
Vue.js实战之组件的进阶
2017/04/04 Javascript
详解webpack+vue-cli项目打包技巧
2017/06/17 Javascript
手把手教你如何使用nodejs编写cli命令行
2018/11/05 NodeJs
VUE脚手架具体使用方法
2019/05/20 Javascript
vue中监听路由参数的变化及方法
2019/12/06 Javascript
JavaScript实现无限轮播效果
2020/11/19 Javascript
[02:40]DOTA2超级联赛专访430 从小就爱玩对抗性游戏
2013/06/18 DOTA
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
python引入导入自定义模块和外部文件的实例
2017/07/24 Python
flask中主动抛出异常及统一异常处理代码示例
2018/01/18 Python
基于Python的PIL库学习详解
2019/05/10 Python
对django的User模型和四种扩展/重写方法小结
2019/08/17 Python
Python 按比例获取样本数据或执行任务的实现代码
2020/12/03 Python
详解HTML5 data-* 自定义属性
2018/01/24 HTML / CSS
西班牙最大的婴儿用品网上商店:Bebitus
2019/05/30 全球购物
介绍一下RMI的基本概念
2016/12/17 面试题
五一劳动节活动记录
2014/03/23 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2014年学生会生活部工作总结
2014/11/07 职场文书
婚礼答谢词
2015/01/04 职场文书
2015年五四青年节演讲稿
2015/03/18 职场文书
教师节倡议书2015
2015/04/27 职场文书
收入证明范本
2015/06/12 职场文书
Linux、ubuntu系统下查看显卡型号、显卡信息详解
2022/04/07 Servers
Java8 Stream API 提供了一种高效且易于使用的处理数据的方式
2022/04/13 Java/Android