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 字符串操作实现代码(截取/替换/查找/分割)
Jun 08 Python
在Python中操作时间之tzset()方法的使用教程
May 22 Python
详解Python中的Cookie模块使用
Jul 06 Python
Python实现命令行通讯录实例教程
Aug 18 Python
Python实现调度算法代码详解
Dec 01 Python
Python使用pyh生成HTML文档的方法示例
Mar 10 Python
解决pandas无法在pycharm中使用plot()方法显示图像的问题
May 24 Python
python实现键盘控制鼠标移动
Nov 27 Python
解决pycharm安装后代码区不能编辑的问题
Oct 28 Python
Python使用itchat模块实现群聊转发,自动回复功能示例
Aug 26 Python
通过python连接Linux命令行代码实例
Feb 18 Python
Python3爬虫ChromeDriver的安装实例
Feb 06 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
《魔兽争霸3》重制版究竟重制了什么?玩家:这么糊弄真的好吗?
2020/05/04 魔兽争霸
php 5.3.5安装memcache注意事项小结
2011/04/12 PHP
php动态实现表格跨行跨列实现代码
2012/11/06 PHP
PHP表单递交控件名称含有点号(.)会被转化为下划线(_)的处理方法
2013/01/06 PHP
解析yii数据库的增删查改
2013/06/20 PHP
php jq jquery getJSON跨域提交数据完整版
2013/09/13 PHP
使用PHP生成二维码的两种方法(带logo图像)
2014/03/14 PHP
免费的ip数据库淘宝IP地址库简介和PHP调用实例
2014/04/08 PHP
PHP框架性能测试报告
2016/05/08 PHP
JavaScript的Function详细
2006/11/14 Javascript
Javascript中的相等与不等运算
2010/04/25 Javascript
纯js实现瀑布流展现照片(自动适应窗口大小)
2013/04/08 Javascript
jquery单行文字向上滚动效果示例
2014/03/06 Javascript
nodejs中实现路由功能
2014/12/29 NodeJs
jQuery中:lt选择器用法实例
2014/12/29 Javascript
JavaScript简单下拉菜单实例代码
2015/09/07 Javascript
Bootstrap每天必学之导航条(二)
2016/03/01 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
nodejs 十六进制字符串型数据与btye型数据相互转换
2018/07/30 NodeJs
vue.js+elementUI实现点击左右箭头切换头像功能(类似轮播图效果)
2019/09/05 Javascript
scrapy自定义pipeline类实现将采集数据保存到mongodb的方法
2015/04/16 Python
详解Django+Uwsgi+Nginx的生产环境部署
2018/06/25 Python
Python常用特殊方法实例总结
2019/03/22 Python
python sorted函数的小练习及解答
2019/09/18 Python
Pytorch之finetune使用详解
2020/01/18 Python
python3正则模块re的使用方法详解
2020/02/11 Python
CSS3感应鼠标的背景闪烁和图片缩放动画效果
2014/05/14 HTML / CSS
使用CSS3和Checkbox实现JQuery的一些效果
2015/08/03 HTML / CSS
什么是反射?如何实现反射?
2016/07/25 面试题
职业生涯规划书基本格式
2014/01/06 职场文书
ktv中秋节活动方案
2014/01/30 职场文书
班主任经验交流会主持词
2014/04/01 职场文书
奥林匹克的口号
2014/06/13 职场文书
领导班子“四风问题”“整改方案
2014/10/02 职场文书
解决Swagger2返回map复杂结构不能解析的问题
2021/07/02 Java/Android
使用CSS实现按钮边缘跑马灯动画
2023/05/07 HTML / CSS