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笔记(叁)继续学习
Oct 24 Python
python在不同层级目录import模块的方法
Jan 31 Python
python安装与使用redis的方法
Apr 19 Python
python实现字符串连接的三种方法及其效率、适用场景详解
Jan 13 Python
python跳过第一行快速读取文件内容的实例
Jul 12 Python
Python3内置模块之base64编解码方法详解
Jul 13 Python
Python字符串格式化输出代码实例
Nov 22 Python
python通过nmap扫描在线设备并尝试AAA登录(实例代码)
Dec 30 Python
TensorFlow tf.nn.softmax_cross_entropy_with_logits的用法
Apr 19 Python
Python使用Matlab命令过程解析
Jun 04 Python
pandas之分组groupby()的使用整理与总结
Jun 18 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 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简单隔行变色功能实现代码
2016/07/09 PHP
用JavaScript获取网页中的js、css、Flash等文件
2006/12/20 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
javascript 冒泡排序 正序和倒序实现代码
2010/12/14 Javascript
js常用排序实现代码
2010/12/28 Javascript
使用jquery插件实现图片延迟加载技术详细说明
2011/03/12 Javascript
ASP.NET jQuery 实例4(复制TextBox的文本到本地剪贴板上)
2012/01/13 Javascript
密码强度检测效果实现原理与代码
2013/01/04 Javascript
javascript中定义私有方法说明(private method)
2014/01/27 Javascript
jquery获取一个元素下面相同子元素的个数代码
2014/07/31 Javascript
JS获取当前网页大小以及屏幕分辨率等
2014/09/05 Javascript
JS给Textarea文本框添加行号的方法
2015/08/20 Javascript
jQuery 获取select选中值及清除选中状态
2016/12/13 Javascript
JavaScript实现前端分页控件
2017/04/19 Javascript
jQuery插件select2利用ajax高效查询大数据列表(可搜索、可分页)
2017/05/19 jQuery
浅谈Webpack自动化构建实践指南
2017/12/18 Javascript
AngularJS自定义过滤器用法经典实例总结
2018/05/17 Javascript
vue实现引入本地json的方法分析
2018/07/12 Javascript
编写更好的JavaScript条件式和匹配条件的技巧(小结)
2019/06/27 Javascript
解决layer弹出层msg的文字不显示的问题
2019/09/11 Javascript
pycharm 使用心得(一)安装和首次使用
2014/06/05 Python
Python代码的打包与发布详解
2014/07/30 Python
python里使用正则表达式的组嵌套实例详解
2017/10/24 Python
python随机取list中的元素方法
2018/04/08 Python
python3.x+pyqt5实现主窗口状态栏里(嵌入)显示进度条功能
2019/07/04 Python
python实现UDP协议下的文件传输
2020/03/20 Python
Python带参数的装饰器运行原理解析
2020/06/09 Python
pytorch查看模型weight与grad方式
2020/06/24 Python
Html5移动端适配IphoneX等机型的方法
2019/06/25 HTML / CSS
Eastbay官网:美国最大的运动鞋网络零售商
2016/07/27 全球购物
初中地理教学反思
2014/01/11 职场文书
电脑饰品店的创业计划书
2014/01/21 职场文书
20年同学聚会感言
2014/02/03 职场文书
创业者是否需要商业计划书?
2014/02/07 职场文书
灵魂歌王观后感
2015/06/17 职场文书
Redis Lua脚本实现ip限流示例
2022/07/15 Redis