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实现的百度站长自动URL提交小工具
Jun 27 Python
python使用正则搜索字符串或文件中的浮点数代码实例
Jul 11 Python
Python实现的括号匹配判断功能示例
Aug 25 Python
Python创建字典的八种方式
Feb 27 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
Python图像处理库PIL的ImageFilter模块使用介绍
Feb 26 Python
Django认证系统user对象实现过程解析
Mar 02 Python
Python astype(np.float)函数使用方法解析
Jun 08 Python
如何在Python3中使用telnetlib模块连接网络设备
Sep 21 Python
python实现图书馆抢座(自动预约)功能的示例代码
Sep 29 Python
简述python&pytorch 随机种子的实现
Oct 07 Python
浅谈Python类的单继承相关知识
May 12 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
分享10段PHP常用代码
2015/11/11 PHP
Yii2中OAuth扩展及QQ互联登录实现方法
2016/05/16 PHP
php 使用html5实现多文件上传实例
2016/10/24 PHP
Zend Framework使用Zend_Loader组件动态加载文件和类用法详解
2016/12/09 PHP
thinkphp 字母函数详解T/I/N/D/M/A/R/U
2017/04/03 PHP
在laravel中使用Symfony的Crawler组件分析HTML
2017/06/19 PHP
laravel-admin select框默认选中的方法
2019/10/03 PHP
javascript &&和||运算法的另类使用技巧
2009/11/28 Javascript
基于jquery的多彩百分比 动态进度条 投票效果显示效果实现代码
2011/08/28 Javascript
基于jquery的鼠标拖动效果代码
2012/05/30 Javascript
在javascript中如何得到中英文混合字符串的长度
2014/01/17 Javascript
Javascript实现字数统计
2015/07/03 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
jquery解析json格式数据的方法(对象、字符串)
2015/11/24 Javascript
Jquery插件easyUi实现表单验证示例
2015/12/15 Javascript
详谈js模块化规范
2017/07/07 Javascript
vue按需引入element Transfer 穿梭框
2017/09/30 Javascript
vue-resource请求实现http登录拦截或者路由拦截的方法
2018/07/11 Javascript
JavaScript高级函数应用之分时函数实例分析
2018/08/03 Javascript
JavaScript实现获取两个排序数组的中位数算法示例
2019/02/26 Javascript
js使用cookie实现记住用户名功能示例
2019/06/13 Javascript
js实现一款简单踩白块小游戏(曾经很火)
2019/12/02 Javascript
用python代码做configure文件
2014/07/20 Python
Python中编写ORM框架的入门指引
2015/04/29 Python
Python使用Beautiful Soup包编写爬虫时的一些关键点
2016/01/20 Python
对Django的restful用法详解(自带的增删改查)
2019/08/28 Python
余弦相似性计算及python代码实现过程解析
2019/09/18 Python
如何使用python实现模拟鼠标点击
2020/01/06 Python
python GUI库图形界面开发之PyQt5日期时间控件QDateTimeEdit详细使用方法与实例
2020/02/27 Python
python如何判断IP地址合法性
2020/04/05 Python
Pycharm无法打开双击没反应的问题及解决方案
2020/08/17 Python
村庄绿化方案
2014/05/07 职场文书
管理者日常工作必备:22条企业管理流程模板!
2019/07/12 职场文书
中学生打架《检讨书》范文
2019/08/12 职场文书
python基础详解之if循环语句
2021/04/24 Python
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers