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中用get()方法获取字典键值的教程
May 21 Python
初学python的操作难点总结(新手必看篇)
Aug 03 Python
Python闭包函数定义与用法分析
Jul 20 Python
对python中list的拷贝与numpy的array的拷贝详解
Jan 29 Python
python实现点击按钮修改数据的方法
Jul 17 Python
如何实现Django Rest framework版本控制
Jul 25 Python
python openCV获取人脸部分并存储功能
Aug 28 Python
pycharm 关掉syntax检查操作
Jun 09 Python
Python魔术方法专题
Jun 19 Python
Python爬虫Scrapy框架CrawlSpider原理及使用案例
Nov 20 Python
Python3.9最新版下载与安装图文教程详解(Windows系统为例)
Nov 28 Python
教你用Python爬取英雄联盟皮肤原画
Jun 13 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生成的html meta和link标记在body标签里 顶部有个空行
2010/05/18 PHP
PHP求小于1000的所有水仙花数的代码
2012/01/10 PHP
php使用GD库创建图片缩略图的方法
2015/06/10 PHP
Laravel中使用FormRequest进行表单验证方法及问题汇总
2016/06/19 PHP
Yii2中Restful API原理实例分析
2016/07/25 PHP
PHP对象相关知识总结
2017/04/09 PHP
js中判断对象是否为空的三种实现方法
2013/12/23 Javascript
JQuery插件iScroll实现下拉刷新,滚动翻页特效
2014/06/22 Javascript
完美JQuery图片切换效果的简单实现
2016/07/21 Javascript
jQuery Checkbox 全选 反选的简单实例
2016/11/29 Javascript
js querySelector() 使用方法
2016/12/21 Javascript
ionic4+angular7+cordova上传图片功能的实例代码
2019/06/19 Javascript
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
基于layui内置模块(element常用元素的操作)
2019/09/20 Javascript
json_decode 索引为数字时自动排序问题解决方法
2020/03/28 Javascript
[01:10]DOTA2 Supermajor:英雄,由我们见证
2018/05/14 DOTA
Python中使用items()方法返回字典元素对的教程
2015/05/21 Python
Django中处理出错页面的方法
2015/07/15 Python
Python3之文件读写操作的实例讲解
2018/01/23 Python
Django中间件工作流程及写法实例代码
2018/02/06 Python
python使用jieba实现中文分词去停用词方法示例
2018/03/11 Python
python dataframe astype 字段类型转换方法
2018/04/11 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
对python使用telnet实现弱密码登录的方法详解
2019/01/26 Python
在python image 中安装中文字体的实现方法
2019/08/22 Python
python使用信号量动态更新配置文件的操作
2020/04/01 Python
pandas按照列的值排序(某一列或者多列)
2020/12/13 Python
python中lower函数实现方法及用法讲解
2020/12/23 Python
python中os.remove()用法及注意事项
2021/01/31 Python
教师辞职报告范文
2014/01/20 职场文书
退伍老兵事迹材料
2014/01/31 职场文书
赔偿协议书范本
2014/04/15 职场文书
世界名著读书笔记
2015/06/25 职场文书
高中班主任工作总结(范文)
2019/08/20 职场文书
vue实现可拖拽的dialog弹框
2021/05/13 Vue.js
Java使用httpRequest+Jsoup爬取红蓝球号码
2021/07/02 Java/Android