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进阶教程之循环对象
Aug 30 Python
python实现根据图标提取分类应用程序实例
Sep 28 Python
Python操作MySQL数据库9个实用实例
Dec 11 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
Python实现的文本简单可逆加密算法示例
May 18 Python
Django数据库表反向生成实例解析
Feb 06 Python
TensorFlow实现简单卷积神经网络
May 24 Python
python使用matplotlib模块绘制多条折线图、散点图
Apr 26 Python
使用pandas读取文件的实现
Jul 31 Python
Django实现将views.py中的数据传递到前端html页面,并展示
Mar 16 Python
如何通过安装HomeBrew来安装Python3
Dec 23 Python
Python标准库之typing的用法(类型标注)
Jun 02 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转换IP地址到真实地址的方法详解
2013/06/09 PHP
Win2003+apache+PHP+SqlServer2008 配置生产环境
2014/07/29 PHP
WordPress中限制非管理员用户在文章后只能评论一次
2015/12/31 PHP
Yii核心验证器api详解
2016/11/23 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
2020/08/06 PHP
在网页中使用document.write时遭遇的奇怪问题
2010/08/24 Javascript
javascript不同类型数据之间的运算的转换方法
2014/02/13 Javascript
jquery实现点击label的同时触发文本框点击事件的方法
2015/06/05 Javascript
编写高性能Javascript代码的N条建议
2015/10/12 Javascript
两款JS脚本判断手机浏览器类型跳转WAP手机网站
2015/10/16 Javascript
漂亮! js实现颜色渐变效果
2016/08/12 Javascript
jQuery Easyui datagrid连续发送两次请求问题
2016/12/13 Javascript
JS简单实现表格排序功能示例
2016/12/20 Javascript
bootstrap multiselect 多选功能实现方法
2017/06/05 Javascript
Vue2.0权限树组件实现代码
2017/08/29 Javascript
nodejs更新package.json中的dependencies依赖到最新版本的方法
2018/10/10 NodeJs
详解nodejs 开发企业微信第三方应用入门教程
2019/03/12 NodeJs
简单了解vue 插值表达式Mustache
2020/07/22 Javascript
[41:21]夜魇凡尔赛茶话会 第三期02:看图识人
2021/03/11 DOTA
[07:01]DOTA2-DPC中国联赛正赛 Aster vs Magma 3月5日 赛后选手采访
2021/03/11 DOTA
Python的内存泄漏及gc模块的使用分析
2014/07/16 Python
Python3中的列表,元组,字典,字符串相关知识小结
2017/11/10 Python
解决python打不开文件(文件不存在)的问题
2019/02/18 Python
Python qqbot 实现qq机器人的示例代码
2019/07/11 Python
分享PyCharm的几个使用技巧
2019/11/10 Python
python3中布局背景颜色代码分析
2020/12/01 Python
Pytorch模型迁移和迁移学习,导入部分模型参数的操作
2021/03/03 Python
css3实现超炫风车特效
2014/11/12 HTML / CSS
Happy Plugs官网:瑞典无线耳机品牌
2020/07/16 全球购物
什么是跨站脚本攻击
2014/12/11 面试题
办公室人员先进事迹
2014/01/27 职场文书
小班重阳节活动方案
2014/02/08 职场文书
社区工作感言
2014/02/21 职场文书
青安岗事迹材料
2014/05/14 职场文书
中秋晚会策划方案
2014/06/12 职场文书
2016年教师党员承诺书范文
2016/03/24 职场文书