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使用7z解压软件备份文件脚本分享
Feb 21 Python
利用Django框架中select_related和prefetch_related函数对数据库查询优化
Apr 01 Python
Python编程之基于概率论的分类方法:朴素贝叶斯
Nov 11 Python
python实现控制电脑鼠标和键盘,登录QQ的方法示例
Jul 06 Python
Django模板导入母版继承和自定义返回Html片段过程解析
Sep 18 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python next()和iter()函数原理解析
Feb 07 Python
pycharm 设置项目的根目录教程
Feb 12 Python
python实现数字炸弹游戏程序
Jul 17 Python
秀!学妹看见都惊呆的Python小招数!【详细语言特性使用技巧】
Apr 27 Python
Django利用AJAX技术实现博文实时搜索
May 06 Python
python机器学习Github已达8.9Kstars模型解释器LIME
Nov 23 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 服务器配置(使用Apache及IIS两种方法)
2009/06/01 PHP
PHP导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
PHP中Fatal error session_start()错误解决步骤
2014/08/05 PHP
PHP使用strtotime获取上个月、下个月、本月的日期
2015/12/30 PHP
thinkPHP中配置的读取与C方法详解
2016/12/05 PHP
Laravel5.4框架使用socialite实现github登录的方法
2019/03/20 PHP
FLASH 广告之外的链接
2008/12/16 Javascript
javascript学习笔记(十) js对象 继承
2012/06/19 Javascript
使用javascript实现简单的选项卡切换
2015/01/09 Javascript
JavaScript使用指针操作实现约瑟夫问题实例
2015/04/07 Javascript
js自调用匿名函数的三种写法(推荐)
2016/08/19 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
js禁止表单重复提交
2017/08/29 Javascript
浅谈Node异步编程的机制
2017/10/18 Javascript
Nuxt.js踩坑总结分享
2018/01/18 Javascript
element-ui table span-method(行合并)的实现代码
2018/12/20 Javascript
layui表单提交到后台自动封装到实体类的方法
2019/09/12 Javascript
vue 使用localstorage实现面包屑的操作
2020/11/16 Javascript
Python中捕捉详细异常信息的代码示例
2014/09/18 Python
Python轻量级ORM框架Peewee访问sqlite数据库的方法详解
2017/07/20 Python
Windows下Anaconda的安装和简单使用方法
2018/01/04 Python
Django Rest framework权限的详细用法
2019/07/25 Python
Django 创建后台,配置sqlite3教程
2019/11/18 Python
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
芭比波朗加拿大官方网站:Bobbi Brown Cosmetics CA
2020/11/05 全球购物
什么是Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议
2012/09/06 面试题
高校毕业生自我鉴定
2013/10/27 职场文书
优秀求职自荐信怎样写
2013/12/18 职场文书
六查六看剖析材料
2014/02/15 职场文书
计算机学生的自我评价分享
2014/02/18 职场文书
闭幕式主持词
2014/04/02 职场文书
幼儿园八一建军节活动方案
2014/08/27 职场文书
助学感谢信范文
2015/01/21 职场文书
教师节班会开场白
2015/06/01 职场文书
关于实现中国梦的心得体会
2016/01/05 职场文书
redis使用不当导致应用卡死bug的过程解析
2021/07/01 Redis