来源:二胖( 公众号:大数据前沿)   链接:

https://mp.weixin.qq.com/s/bnj5oOdL7iDEmIDlA8h8EA

除了可以处理规整的正方形图片,还可以处理非规则的图片。比如下面这张宽度远大于高度的图片,怎么处理呢?

很简单,取宽和高之间的较大值,然后填充白色,就可以构造出一张正方形的图片啦。

当然,想把一张图片做成这样子也很容易啦,现在很多手机上的图片处理软件都能实现。

PIL是一个功能非常强大的Python图像处理标准库,但是呢,由于PIL支持Python2.7,所以使用Python3的程序猿们又在PIL的基础上分离出来了一个分支,创建了另外一个库Pillow,是可以支持Python3的。Pillow兼容了PIL的大部分语法,使用起来也非常的简单。

对应代码如下:

# -*- coding: utf-8 -*-
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:#原图宽大于高,则填充图片的竖直维度new_image.paste(image, (0, int((new_image_length - height) / 2)))#(x,y)二元组表示粘贴上图相对下图的起始位置else:new_image.paste(image, (int((new_image_length - width) / 2),0))return new_image#切图
def cut_image(image):width, height = image.sizeitem_width = int(width / 3)box_list = []# (left, upper, right, lower)for i in range(0,3):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 = 1for image in image_list:image.save('./result/python'+str(index) + '.png', 'PNG')index += 1if __name__ == '__main__':file_path = "1.jpg"image = Image.open(file_path)#image.show()image = fill_image(image)image_list = cut_image(image)save_images(image_list)

github地址:

https://github.com/yangxuan0928/cut_image

在本地使用git clone命令将源码下载下来,然后将要分解的图片放在项目目录里面。

依赖

Python 2.7

PIL: pip install pillow

Python 3

PIL: pip3 install pillow

修改代码中:

file_path = "你的照片名字.照片后缀"

然后运行,然后到result目录中去找生成的照片。

拼图前:

拼图后:


代码非原创,我只是代码的搬运工。

用Python拼图发一个高逼格的朋友圈相关推荐

  1. python发朋友圈_用 Python 发一个高逼格的朋友圈

    原标题:用 Python 发一个高逼格的朋友圈 源 /痴海文 /痴海 分享一个非常骚气的发朋友圈姿势.效果如下. 利用今天教给大家的 python 脚本,把一张图重新分隔成 9 张.上传到朋友圈,最后 ...

  2. python朋友圈图片_用Python发一个高逼格的朋友圈

    原标题:用Python发一个高逼格的朋友圈 今天要给大家介绍一个Python库:PIL(Python Image Library) 下面我们用一个实际的例子,看看50行python代码可以做什么神奇的 ...

  3. 用 Python 发一个高逼格的朋友圈

    源 / 痴海  文 / 痴海 分享一个非常骚气的发朋友圈姿势.效果如下. 利用今天教给大家的 python 脚本,把一张图重新分隔成 9 张.上传到朋友圈,最后就会形成上面的效果.可能有些人在朋友圈有 ...

  4. python发朋友圈_10分钟教你用Python发一个高逼格的朋友圈

    程序猿声 你与千万程序猿在一起 01 前言 Hello~各位小伙伴们大家好.现在大家是越来越离不开手机,离不开微信了.每天打开手机的第一或者第二件事就是赶紧打开朋友圈看看有什么好玩的东西.偶尔忍不住了 ...

  5. 用Python发一个高逼格的朋友圈【附代码】

    如题,此文转自知乎: 公众号:[大数据前沿]编程,教程,大数据  作者:二胖 今天作者给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子,看看 ...

  6. 用Python发一个高逼格的朋友圈

    今天要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子,看看50行python代码可以做什么神奇的事情. 这是发的一个朋友圈,切图前是一张图 ...

  7. python朋友圈为什么这么火-用Python发一个高逼格的朋友圈「附代码」

    今天小漠要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子 看看50行python代码可以做什么神奇的事情 这是小漠发的一个朋友圈 切图前是 ...

  8. python训练营朋友圈留言_用Python发一个高逼格的朋友圈【附代码】

    今天二胖要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子 看看50行python代码可以做什么神奇的事情 这是二胖发的一个朋友圈 切图前是 ...

  9. python发朋友圈突破朋友圈限制_用Python发一个高逼格的朋友圈

    今天Aimee要给大家介绍一个Python库: PIL(Python Image Library) 下面我们用一个实际的例子 看看50行python代码可以做什么神奇的事情 这是我发的一个朋友圈 切图 ...

最新文章

  1. controller不跳转页面的几个原因_光知道SpringBoot,不用thymeleaf就太不对了
  2. 从Elasticsearch来看分布式系统架构设计,真是666~
  3. 深度学习难分样本挖掘(Hard Mining)
  4. Android stadio Switch repository Android stadio切换仓库
  5. java sync_Java同步简介 - 加大装益达 - OSCHINA - 中文开源技术交流社区
  6. python获得用户输入的一个字符串(长度3)_python3 字符串属性(一)
  7. Java合并pdf文件
  8. OJ1043: 最大值(C语言)
  9. flask mysql项目模板渲染_Flask系列(二) 模板 templates
  10. CodeForces - 589B
  11. thinkphp连接远程数据库慢_干货分享—Niushop数据库配置
  12. hadoop搭建之hadoop安装
  13. mono 最近的三条消息
  14. Android 推荐一个Android系统全系列源码在线阅读网站,Android学习资料,Android各个API使用的网站
  15. 全国计算机二级vb试题库,全国计算机等级考试题库之二级VB试题
  16. 推荐10款适合C/C++开发人员的IDE
  17. VMware是什么?
  18. python 发送匿名邮件或无发件人
  19. 地热能类毕业论文文献有哪些?
  20. Matlab应变片仿真,应变片传感器的应用.ppt

热门文章

  1. 使用sentinel实现限流
  2. plsql tables 没有表_天长视唱练耳辅导班收费表,安徽高考音乐培训学校,你知道吗...
  3. kafka linux客户端,kafka linux 客户端操作命令
  4. web图片铺满网页_web单页面实现多个echarts图表铺满整个div(柱状图,折线图,饼形图……)...
  5. 如何安装mysql5.7.9_安装mysql-5.7.9-winx64
  6. 计算机程序中断方式有几种,奥鹏离线作业计算机组成原理一、简答题1、请说明程序查询方式与中断方式各自的特点.2、提高存储器速度可采用哪些措施,请说出...
  7. html简单的图片切换js,一分钟让你学会如何使用js切换图片
  8. linux修改响应时间,linux下使用httping测试web响应时间
  9. java rtmp m3u8_vue常用插件之视频播放(rtmp m3u8)
  10. python自带超参调优包