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登录豆瓣并发帖的方法
Jul 08 Python
Python解析最简单的验证码
Jan 07 Python
python魔法方法-自定义序列详解
Jul 21 Python
python Crypto模块的安装与使用方法
Dec 21 Python
用python简单实现mysql数据同步到ElasticSearch的教程
May 30 Python
分析经典Python开发工程师面试题
Apr 08 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
用pyqt5 给按钮设置图标和css样式的方法
Jun 24 Python
Python基于pygame实现单机版五子棋对战
Dec 26 Python
python实现百度OCR图片识别过程解析
Jan 17 Python
使用openCV去除文字中乱入的线条实例
Jun 02 Python
用python实现一个简单的验证码
Dec 09 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
ThinkPHP CURD方法之table方法详解
2014/06/18 PHP
PHP查看当前变量类型的方法
2015/07/31 PHP
php数值计算num类简单操作示例
2020/05/15 PHP
Jquery Ajax学习实例7 Ajax所有过程事件分析示例
2010/03/23 Javascript
js 替换功能函数,用正则表达式解决,js的全部替换
2010/12/08 Javascript
jQuery EasyUI API 中文文档 - Calendar日历使用
2011/10/19 Javascript
javascript制作网页图片上实现下雨效果
2015/02/26 Javascript
JS常见问题之为什么点击弹出的i总是最后一个
2016/01/05 Javascript
TypeScript Type Innference(类型判断)
2016/03/10 Javascript
BootStrop前端框架入门教程详解
2016/12/25 Javascript
JS 学习总结之正则表达式的懒惰性和贪婪性
2017/07/03 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
jQuery滚动条美化插件nicescroll简单用法示例
2018/04/18 jQuery
JS实现点击按钮可实现编辑功能
2018/07/03 Javascript
js正则表达式校验指定字符串的方法
2018/07/23 Javascript
Bootstrap模态对话框中显示动态内容的方法
2018/08/10 Javascript
vue里input根据value改变背景色的实例
2018/09/29 Javascript
JavaScript寄生组合式继承原理与用法分析
2019/01/11 Javascript
js实现选项卡效果
2020/03/07 Javascript
Vue-cli4 配置 element-ui 按需引入操作
2020/09/11 Javascript
python中的多线程实例教程
2014/08/27 Python
Python中实现两个字典(dict)合并的方法
2014/09/23 Python
Python中的测试模块unittest和doctest的使用教程
2015/04/14 Python
Python爬取网页中的图片(搜狗图片)详解
2017/03/23 Python
django中使用事务及接入支付宝支付功能
2019/09/15 Python
PyQt5如何将.ui文件转换为.py文件的实例代码
2020/05/26 Python
浅谈django不使用restframework自定义接口与使用的区别
2020/07/15 Python
英国皇家邮政海外旗舰店:Royal Mail
2018/02/21 全球购物
渗透攻击的测试步骤
2014/06/07 面试题
销售业务实习自我鉴定
2013/09/23 职场文书
2015年药品销售工作总结范文
2015/05/25 职场文书
2015年暑期见闻
2015/07/14 职场文书
2015年政治教研组工作总结
2015/07/22 职场文书
家庭聚会祝酒词
2015/08/11 职场文书
2016国培研修心得体会
2016/01/08 职场文书
Lakehouse数据湖并发控制陷阱分析
2022/03/31 Oracle