经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下;

将图片分拆成九宫格的思路:

读取图片->填充图片为正方形(fill_image函数)->将图片切分为9张(cut_image函数)->保存图片(save_image)->over

代码实现如下:

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(str(index) + '.jpg')

index += 1

if __name__ == '__main__':

file_path = "微信图片_20180809234441.jpg"

image = Image.open(file_path)

# image.show()

image = fill_image(image)

image_list = cut_image(image)

save_images(image_list)

效果如下:

参考了二胖大神提供的思路,里面的逻辑很有趣:

1.开始相当于是拿一张白底的图片粘贴到了原图上;

2.切图的时候分成9宫格,的循环写的也非常漂亮。

3.代码中出现了很多次for循环的迭代使用:[image.crop(box) for box in box_list],以后自己也要多练习这种写法。

以上这篇用Python实现将一张图片分成9宫格的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

本文标题: 用Python实现将一张图片分成9宫格的示例

本文地址: http://www.cppcns.com/jiaoben/python/264725.html

python把一堆图片分成n份_用Python实现将一张图片分成9宫格的示例相关推荐

  1. python爬虫网页图片显示不出来_用Python爬取20万条网页美女图片,两只眼睛 都看不过来了!...

    前言 最近几天,研究了一下一直很好奇的爬虫算法.这里写一下最近几天的点点心得.下面进入正文: 你可能需要的工作环境: Python 3.6官网下载 本地下载 我们这里以sogou作为爬取的对象. 首先 ...

  2. python语言编写一个生成九宫格图片的代码_用Python实现将一张图片分成9宫格的示例...

    经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下; 将图片分拆成九宫格的思路: 读取图片->填充图片为正方形(fill_image函数) ...

  3. 用python做一张图片_用Python实现将一张图片分成9宫格的示例

    经常看到朋友圈或者空间里有朋友发布照片时,将朋友圈的照片切分为九宫格,参考了一些大神的博客资料,现整理如下; 将图片分拆成九宫格的思路: 读取图片->填充图片为正方形(fill_image函数) ...

  4. python怎么把照片转成卡通_使用python将图片转换为草图和漫画格式

    [相关学习建议:python视频教程] 这个例子分享了python的特定代码,将图片转换成草图和漫画格式,供您参考.具体内容如下 艺术品 图片转换后的结果 源代码 # -*-编码:utf-8-*-从P ...

  5. python实现图片找不同游戏_用Python实现谷歌的小恐龙游戏

    (给Python开发者加星标,提升Python技能) 来源: Charles的皮卡丘-白露未晞me理 谷歌流量器中有个很有名的彩蛋:当你网络出现问题时,就会出现一个"小恐龙游戏". ...

  6. python图片压缩不失真_使用 python 压缩 png 图片,高达 80% 压缩率,肉眼无差异(一):为什么不用 pillow库.md...

    在网上有很多使用 python 的 pillow 库进行图片压缩的教程,使用简单,但是压缩效果存在明显的色彩不自然,这是因为 pillow 库采取的压缩算法没有优化的问题. 这个系列实现一款简单的压缩 ...

  7. python图片识别验证码软件_基于python图片识别工具(图片识别,车牌,PDF,验证码)...

    先上图  不多说. 对于一般的用户来说识别率还是能达到百分之90以上. 已经打包成exe文件.windows用户可以直接使用.要软件的加我QQ python代码: # -*- coding: UTF- ...

  8. python交互式编程入门先学什么_为什么 Python 对于编程入门学习来说,是一门很棒的语言...

    在这篇文章里,我会来阐述下为什么我觉得 Python 对于计算机编程入门教学来说是一门很棒的编程语言(对基础编程课程更多观点可以查看这篇文章).这也是从我针对初学者Python 编程教学过程中获得并总 ...

  9. python适合零基础的人吗_学Python需要什么基础知识?零基础可以学Python吗?

    学Python需要什么基础知识?一般来说,想要学Python最好具备一定的计算机专业知识,尤其是数学和英语不错的话,对学Python也有一定的帮助.但是零基础的学习者就不能学Python了吗?当然不是 ...

最新文章

  1. Java NIO系列教程(六) Selector
  2. bootstrap datepicker Uncaught TypeError: Cannot call method 'split' of undefined问题
  3. 交叉编译VIM并移植到ARM嵌入式Linux系统
  4. 系统二级运维之业务单据错误处理
  5. CodeForces - 1486F Pairs of Paths(树上计数+容斥)
  6. 使用Java迭代器修改数据时要小心
  7. 【预留】Apache Doris 0.12 官方中文文档学习
  8. Ubuntu下的文件安全删除工具
  9. js实现select跳转
  10. Ubuntu 10.04 分辨率调整
  11. 如何修改音乐的匹配字数
  12. 【POJ 3276】【开关问题】Face The Right Way【暑期 No.4】
  13. 手机三十分钟熄屏如何一直亮_如何让手机屏幕常亮
  14. python sqlite3加密_sqlite3加密
  15. JSON字符串生成在线生成POJO工具类
  16. Fortinet:网络安全越来越勤快,可甲方却应该越来越「懒」
  17. ProxySQL+MGR实现读写分离和主节点故障无感知切换 - 完整操作记录
  18. 连接计算机名提示输入网络凭据,Win10访问局域网共享文件时提示输入网络凭据如何解决...
  19. ext3文件系统基础
  20. 他写代码如入定,人称阿里“扫地僧,java自学教程百度云

热门文章

  1. MBR磁盘和GPT磁盘的基本磁盘和动态磁盘,FAT和NTFS文件系统——小结
  2. 计算机连接不上蓝牙鼠标,win10系统蓝牙鼠标连接不上的图文教程
  3. 如何让联系人头像显示联系人姓名的第一个汉字
  4. 子曾经曰过,玩笑不能乱开。
  5. OpenCV:视频跳转
  6. 最高16% ,微信首批付费阅读公众号分析
  7. 实现多重选项点选添加
  8. 松散机车——SS SUMEMR
  9. 苹果M2处理器最新消息:已向台积电下单
  10. 【BLE学习笔记】之 BLE基础知识