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 13 Python
python实现12306火车票查询器
Apr 20 Python
浅谈Python peewee 使用经验
Oct 20 Python
python书籍信息爬虫实例
Mar 19 Python
朴素贝叶斯分类算法原理与Python实现与使用方法案例
Jun 26 Python
python寻找list中最大值、最小值并返回其所在位置的方法
Jun 27 Python
利用Python实现原创工具的Logo与Help
Dec 03 Python
Python3实现二叉树的最大深度
Sep 30 Python
Python正则表达式急速入门(小结)
Dec 16 Python
如何基于Python和Flask编写Prometheus监控
Nov 25 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
Python读取和写入Excel数据
Apr 20 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数学运算
2011/12/30 PHP
PHP5中Cookie与 Session使用详解
2013/04/30 PHP
PHP中读取照片exif信息的方法
2014/08/20 PHP
如何在Laravel5.8中正确地应用Repository设计模式
2019/11/26 PHP
基于jquery打造的百分比动态色彩条插件
2012/09/19 Javascript
jquery动态添加删除一行数据示例
2014/06/12 Javascript
jQuery实现滚动切换的tab选项卡效果代码
2015/08/26 Javascript
详解Angular4 路由设置相关
2017/08/26 Javascript
vue自定义过滤器创建和使用方法详解
2017/11/06 Javascript
vue项目中引入noVNC远程桌面的方法
2018/03/05 Javascript
axios的拦截请求与响应方法
2018/08/11 Javascript
小程序实现自定义导航栏适配完美版
2019/04/02 Javascript
JavaScript生成一个不重复的ID的方法示例
2019/09/16 Javascript
Vue使用vue-draggable 插件在不同列表之间拖拽功能
2020/03/12 Javascript
谈谈JavaScript中的垃圾回收机制
2020/09/17 Javascript
python学习必备知识汇总
2017/09/08 Python
pip命令无法使用的解决方法
2018/06/12 Python
深入解析Python小白学习【操作列表】
2019/03/23 Python
python lxml中etree的简单应用
2019/05/10 Python
使用 python pyautogui实现鼠标键盘控制功能
2019/08/04 Python
基于 Django 的手机管理系统实现过程详解
2019/08/16 Python
为什么黑客都用python(123个黑客必备的Python工具)
2020/01/31 Python
opencv-python的RGB与BGR互转方式
2020/06/02 Python
英国最大的奢侈品零售网络商城:Flannels
2016/09/16 全球购物
美国艺术和工艺品商店:Hobby Lobby
2020/12/09 全球购物
ruby如何进行集成操作?Ruby能进行多重继承吗?
2013/10/16 面试题
人事主管的岗位职责
2013/11/16 职场文书
优秀教师先进事迹
2014/01/22 职场文书
园艺专业毕业生求职信
2014/09/02 职场文书
市委召开党的群众路线教育实践活动总结大会报告
2014/10/21 职场文书
环境建议书
2015/02/04 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
html实现弹窗的实例
2021/06/09 HTML / CSS
Node.js实现断点续传
2021/06/23 Javascript
Tomcat弱口令复现及利用
2022/05/06 Servers
Mysql如何查看是否使用到索引
2022/12/24 MySQL