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制作简单的钢琴程序的教程
Apr 01 Python
python 多线程实现检测服务器在线情况
Nov 25 Python
Python实现TCP/IP协议下的端口转发及重定向示例
Jun 14 Python
python excel使用xlutils类库实现追加写功能的方法
May 02 Python
numpy实现合并多维矩阵、list的扩展方法
May 08 Python
Python 新建文件夹与复制文件夹内所有内容的方法
Oct 27 Python
Python 最大概率法进行汉语切分的方法
Dec 14 Python
django 控制页面跳转的例子
Aug 06 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
Aug 23 Python
Python二次规划和线性规划使用实例
Dec 09 Python
Tensorflow tf.nn.atrous_conv2d如何实现空洞卷积的
Apr 20 Python
python中的getter与setter你了解吗
Mar 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
一个odbc连mssql分页的类
2006/10/09 PHP
php实现将HTML页面转换成word并且保存的方法
2016/10/14 PHP
javascript 页面只自动刷新一次
2009/07/10 Javascript
网页图片延时加载的js代码
2010/04/22 Javascript
asp.net+jquery滚动滚动条加载数据的下拉控件
2010/06/25 Javascript
纯js写的分页表格数据为json串
2014/02/18 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
jqPlot jQuery绘图插件的使用
2016/06/18 Javascript
DOM中事件处理概览与原理的全面解析
2016/08/16 Javascript
addEventListener()与removeEventListener()解析
2017/04/20 Javascript
vue+vuecli+webpack中使用mockjs模拟后端数据的示例
2017/10/24 Javascript
解决微信小程序中转换时间格式IOS不兼容的问题
2019/02/15 Javascript
深入浅出 Vue 系列 -- 数据劫持实现原理
2019/04/23 Javascript
JS数组扁平化(flat)方法总结详解
2019/06/24 Javascript
vue.js 子组件无法获取父组件store值的解决方式
2019/11/08 Javascript
[01:06:32]DOTA2上海特级锦标赛D组资格赛#1 EG VS VP第一局
2016/02/28 DOTA
python去掉字符串中重复字符的方法
2014/02/27 Python
python 通过类中一个方法获取另一个方法变量的实例
2019/01/22 Python
利用python实现在微信群刷屏的方法
2019/02/21 Python
Python collections模块使用方法详解
2019/08/28 Python
python实现简易淘宝购物
2019/11/22 Python
python计算二维矩形IOU实例
2020/01/18 Python
Python unittest 自动识别并执行测试用例方式
2020/03/09 Python
浅谈Django QuerySet对象(模型.objects)的常用方法
2020/03/28 Python
django admin管理工具自定义时间区间筛选器DateRangeFilter介绍
2020/05/19 Python
高级3D打印市场:Gambody
2019/12/26 全球购物
初婚未育证明
2014/01/15 职场文书
中等生评语大全
2014/05/04 职场文书
村庄环境整治方案
2014/05/15 职场文书
男性健康日的活动方案
2014/08/18 职场文书
社保缴纳证明申请书
2014/11/03 职场文书
北京英语导游词
2015/02/12 职场文书
交通事故协议书范本
2016/03/19 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
java如何实现socket连接方法封装
2021/09/25 Java/Android
使用Java去实现超市会员管理系统
2022/03/18 Java/Android