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 translator使用实例
Sep 06 Python
学习Python3 Dlib19.7进行人脸面部识别
Jan 24 Python
python实现机器人行走效果
Jan 29 Python
python爬虫基本知识
Mar 05 Python
Python基于TCP实现会聊天的小机器人功能示例
Apr 09 Python
实用自动化运维Python脚本分享
Jun 04 Python
Python实现E-Mail收集插件实例教程
Feb 06 Python
python实现杨氏矩阵查找
Mar 02 Python
python实现淘宝购物系统
Oct 25 Python
Tensorflow 多线程与多进程数据加载实例
Feb 05 Python
sklearn+python:线性回归案例
Feb 24 Python
Python爬取YY评级分数并保存数据实现过程解析
Jun 01 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+AJAX实现无刷新注册(带用户名实时检测)
2006/12/02 PHP
php 一元分词算法
2009/11/30 PHP
php定义一个参数带有默认值的函数实例分析
2015/03/16 PHP
PHP实现搜索相似图片
2015/09/22 PHP
PHP实现数据库统计时间戳按天分组输出数据的方法
2017/10/10 PHP
解决Laravel5.x的php artisan migrate数据库迁移创建操作报错SQLSTATE[42000]
2020/04/06 PHP
载入jQuery库的最佳方法详细说明及实现代码
2012/12/28 Javascript
JS(JQuery)操作Array的相关方法介绍
2014/02/11 Javascript
深入剖析JavaScript中的函数currying柯里化
2016/04/29 Javascript
ES6学习笔记之Set和Map数据结构详解
2017/04/07 Javascript
js实现适配不同的屏幕大小
2017/04/10 Javascript
常见的浏览器Hack技巧整理
2017/06/29 Javascript
一个Vue页面的内存泄露分析详解
2018/06/25 Javascript
利用JS响应式修改vue实现页面的input值
2019/09/02 Javascript
openlayers4实现点动态扩散
2020/08/17 Javascript
[02:35]DOTA2英雄基础教程 末日使者
2013/12/04 DOTA
python实现进程间通信简单实例
2014/07/23 Python
python新手经常遇到的17个错误分析
2014/07/30 Python
基于Python Shell获取hostname和fqdn释疑
2016/01/25 Python
基于python的Tkinter编写登陆注册界面
2017/06/30 Python
Python3从零开始搭建一个语音对话机器人的实现
2019/08/23 Python
Django Form and ModelForm的区别与使用
2019/12/06 Python
在Tensorflow中实现梯度下降法更新参数值
2020/01/23 Python
纽约JewelryAffairs珠宝店:精细金银时尚首饰
2017/02/05 全球购物
Lookfantastic葡萄牙官方网站:欧洲第一大化妆品零售商
2018/03/17 全球购物
施华洛世奇波兰官网:SWAROVSKI波兰
2019/06/18 全球购物
Servlet都有哪些方法?主要作用是什么?
2014/03/04 面试题
水利局群众路线专题民主生活会发言材料
2014/09/21 职场文书
2014年派出所工作总结
2014/11/21 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
青年教师听课心得体会
2016/01/15 职场文书
交通事故协议书范本
2016/03/19 职场文书
MySQL数据库必备之条件查询语句
2021/10/15 MySQL
Win11无法访问设备和打印机 如何解决页面空白
2022/04/09 数码科技
Oracle中DBLink的详细介绍
2022/04/29 Oracle
html解决浏览器记住密码输入框的问题
2023/05/07 HTML / CSS