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中的JSON模块
Apr 08 Python
python动态网页批量爬取
Feb 14 Python
Python制作简易注册登录系统
Dec 15 Python
python 使用get_argument获取url query参数
Apr 28 Python
Python subprocess模块详细解读
Jan 29 Python
使用Python进行QQ批量登录的实例代码
Jun 11 Python
Python matplotlib画图与中文设置操作实例分析
Apr 23 Python
python 的 scapy库,实现网卡收发包的例子
Jul 23 Python
keras Lambda自定义层实现数据的切片方式,Lambda传参数
Jun 11 Python
Python常用数据分析模块原理解析
Jul 20 Python
Python 中面向接口编程
May 20 Python
Python 操作pdf pdfplumber读取PDF写入Exce
Aug 14 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 smarty截取中文字符乱码问题?gb2312/utf-8
2011/11/07 PHP
深入解析php之sphinx
2013/05/15 PHP
显示youtube视频缩略图和Vimeo视频缩略图代码分享
2014/02/13 PHP
PHP实现图片的等比缩放和Logo水印功能示例
2017/05/04 PHP
Jquery 学习笔记(一)
2009/10/13 Javascript
js分页代码分享
2014/04/28 Javascript
javascript设置页面背景色及背景图片的方法
2015/12/29 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
JavaScript隐式类型转换
2016/03/15 Javascript
Jquery实现的简单轮播效果【附实例】
2016/04/19 Javascript
js中string和number类型互转换技巧(分享)
2016/11/28 Javascript
js实现文字跑马灯效果
2017/02/23 Javascript
详解Vue 2.0封装axios笔记
2017/06/22 Javascript
ReactNative之FlatList的具体使用方法
2017/11/29 Javascript
全新打包工具parcel零配置vue开发脚手架
2018/01/11 Javascript
关于redux-saga中take使用方法详解
2018/02/27 Javascript
vue+iview/elementUi实现城市多选
2019/03/28 Javascript
bootstrap-table+treegrid实现树形表格
2019/07/26 Javascript
详解Python实现多进程异步事件驱动引擎
2017/08/25 Python
python实现二叉查找树实例代码
2018/02/08 Python
python+splinter实现12306网站刷票并自动购票流程
2018/09/25 Python
Python3.5迭代器与生成器用法实例分析
2019/04/30 Python
numpy 声明空数组详解
2019/12/05 Python
Python confluent kafka客户端配置kerberos认证流程详解
2020/10/12 Python
IE矩阵Matrix滤镜旋转与缩放及如何结合transform
2012/11/29 HTML / CSS
HTML5 form标签之解放表单验证、增加文件上传、集成拖放的使用方法
2013/04/24 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
英国手机壳购买网站:Case Hut
2019/04/11 全球购物
阿联酋优惠券服务:Living Kool
2019/12/12 全球购物
毕业生就业自荐书
2013/12/15 职场文书
护士演讲稿优秀范文
2014/04/30 职场文书
青年文明号申报材料
2014/12/23 职场文书
匿名检举信范文
2015/03/02 职场文书
商务英语邮件开头问候语
2015/11/10 职场文书
《巨人的花园》教学反思
2016/02/19 职场文书
导游词之河北野三坡
2019/12/11 职场文书