作为一个男同胞来说,为了给女朋友拍一张美美的照片,着实需要花费很大的时间和精力,不仅仅需要从众多的图片中精心挑选,而且还需要有着超强的图片精修能力,才能得到一张张达到女友要求的图片,真心不容易啊~

很多人学习python,不知道从何学起。
很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手。
很多已经做案例的人,却不知道如何去学习更加高深的知识。
那么针对这三类人,我给大家提供一个好的学习平台,免费领取视频教程,电子书籍,以及课程的源代码!
QQ群:1097524789

朋友圈发出去一张照片显得很单薄,有没有啥好的办法呢,小编今天就带领大家来制作一个微信的九宫格图片,发朋友圈一定能搏一把眼球!

对于九宫格的朋友圈大家应该不会陌生,如下图所示,小编先用我最喜欢的一个动漫里面的女神焰灵姬做demo,下图就是焰灵姬做的一个微信九宫格的图片:

也就是我们将一张完整的图片分割成9个不同的部分,然后利用微信的九宫格排列,组成一张图片,提升美感的同时,也让图片变得丰富起来。下面就跟随小编来看看是如何利用程序实现的吧。

01.设计一个界面

小编为了提升用户的体验,设计了一个用户界面,界面如下图所示:

上图中,我们只需要按照提示输入图片的转换地址和转换后图片保存的文件夹地址,然后只需要点击“开始转换”即可完成。

界面程序如下图所示:

整个的界面,我们设置了几个关键的控件:

  • 例如Label,是用来在界面上展示文本信息的;

  • 而Entry则是用来让用户输入文本信息的控件;

  • Button就是按键空间,对应了界面上的“开始转换”按键,其绑定了我们的转换程序self.Run函数;

  • self.Run便是我们程序转换的主函数,它完成了对于一张图片的读入,并将其分割成9张图片,并保存9张图片的功能;

02.敲黑板划重点,如何分割图片

上面只是完成了外表的壳子的功能,可以认为是前端的功能,后端的图像的处理功能才是关键。这里就是用到了强大的cv2这个库。

上面的程序一共完成了这么几步:

  • 首先将图形以较长边为基准,填充为正方形,这里为什么填充为正方形呢?因为微信图片显示九宫格的时候,都是按照正方形进行显示的。

  • 如果不填充为正方形,分割出来的会是长方形,会造成图片存在部分丢失的现象。当我们把图像填充为正方形,这样分割出来的图片依旧是正方形,不会出现图片部分丢失的问题。

  • 接着填充完之后,按照新图片的边长来分割图片,分割图片的边长就是新图片的三分之一

  • 最后我们将分割出来的图片保存到指定的文件夹内即可。

03.效果展示

下图就是小编分割出来后,进行微信朋友圈展示的效果图:

看完效果图,大家是不是感觉瞬间档次就提升了呢。最后,小编以视频的形式为大家展示一下如何使用该程序:

用Python一键生成炫酷九宫格图片,火了朋友圈的更多相关文章

  1. Python | 一键生成九宫格图片

    一键生成九宫格图片 首先我们准备几张图片: 将代码文件放在放置图片的地方,用软件打开: 点击运行,在当前目录下会生成一个文件夹: 打开新生成的文件夹: 打开对应图片的名称文件夹: 如果不想图片被分成9 ...

  2. 重写 View 的 Touch 方法,实现一个酷炫的九宫格图片

    前几天翻看代码库,发现一个之前写过的一个有意思的小玩意,共享给大家

  3. 在树莓派上用 python 做一个炫酷的天气预报

    教大家如何在树莓派上自己动手做一个天气预报.此次教程需要大家有一定的python 基础,没有也没关系,文末我会放出我已写好的代码供大家下载. 首先在开始之前 需要申请高德地图API,去高德地图官网注册 ...

  4. iOS开发之窥探UICollectionViewController(五) --一款炫酷的图片浏览组件

    本篇博客应该算的上CollectionView的高级应用了,从iOS开发之窥探UICollectionViewController(一)到今天的(五),可谓是由浅入深的窥探了一下UICollectio ...

  5. 手把手教你做一个python+matplotlib的炫酷的数据可视化动图

    1.效果图 2.注意: 上述资料是虚拟的,为了学习制作动图,构建的. 仅供学习, 不是真实数据,请别误传. 当自己需要对真实数据进行可视化时,可进行适当修改. 3.代码: #第1步:导出模块,固定 i ...

  6. 40行Python制作超炫酷动态排序图,有了它高逼格PPT再也不愁!

        本文首发于量化投资与机器学习 转载于  https://mp.weixin.qq.com/s/KaB_7oXZf0_IV97y0pRPmQ 前言 最近,这种动态排序条形图视频超级火,如下图: ...

  7. 【Android】java生成炫酷验证码,不区分大小写。登陆,发送手机验证码,防止注册机,android开发

    作者:程序员小冰,CSDN博客:http://blog.csdn.net/qq_21376985 QQ986945193 微博:http://weibo.com/mcxiaobing 首先给大家看一下 ...

  8. Python 带你一键生成朋友圈超火的九宫格短视频

    1. 场景 如果你经常刷抖音和微信朋友圈,一定发现了最近九宫格短视频很火! ​从朋友圈九宫格图片,到九宫格视频,相比传统的图片视频,前者似乎更有个性和逼格 除了传统的剪辑软件可以实现,是否有其他更加快 ...

  9. 8个超炫酷仿HTML5动画源码

    1.jQuery万年历插件 带农历老皇历功能 这是一款基于jQuery的日历插件,这款日历插件和之前分享的日历控件有很大差异,它是一本万年历,包含了农历已经老皇历的功能,是一个挑好日子的工具.同时日历 ...

随机推荐

  1. 机器学习实战基础(三十):决策树(三) DecisionTreeRegressor

    DecisionTreeRegressor class sklearn.tree.DecisionTreeRegressor (criterion=’mse’, splitter=’best’, ma ...

  2. javascript基础(七):js发送请求

    GET请求 $.get("/api/v1.0/user",function(resp){ // 用户未登录 if ("4101" == resp.errno) ...

  3. Django框架11 /form组件、modelForm组件

    Django框架11 /form组件.modelForm组件 目录 Django框架11 /form组件.modelForm组件 1. form组件介绍 2. form常用字段与插件 3. form所 ...

  4. 网上一些sql题目的解决(网上答案+自己答案)

    此篇博客内容引自“MySQL经典练习题及答案” 废话不不多说!!! 建表.插入数据. --建表 --学生表 CREATE TABLE Student( s_id VARCHAR(20), s_name ...

  5. Java多线程原理+基础知识(超级超级详细)+(并发与并行)+(进程与线程)1

    Java多线程 我们先来了解两个概念!!!! 1.什么是并发与并行 2.什么是进程与线程 1.什么是并发与并行 1.1并行:两个事情在同一时刻发生 1.2并发:两个事情在同一时间段内发生 并发与并行的 ...

  6. Ethical Hacking - GAINING ACCESS(15)

    CLIENT SIDE ATTACKS Social Engineering Gather info about the user(s). Build a strategy based on the ...

  7. 010.Nginx正反代理

    一 Nginx代理 1.1 Nginx代理概述 nginx是一款自由的.开源的.高性能的HTTP服务器和反向代理服务器.同时也是一个IMAP.POP3.SMTP代理服务器.nginx可以作为一个HTT ...

  8. MySQL数据库---库的操作

    MySQL数据库中,以库,表,记录的形式管理所有的数据,安装MySQL数据库的服务器上可以包含多个库,一个库中包含多张表,一张表中包含多条记录.库对应的是文件系统中文件夹的概念,表对应的是文件的概念, ...

  9. git push到远程新分支

    获取远程代码并在本地切换到一个新分支修改后,想要 push 到远端与原来不同的新分支,可以使用下面的命令实现: git push origin 本地分支:远端希望创建的分支 上面的本地分支 是基于拉取 ...

  10. [spring] -- 事务篇

    关于Transactional注解 五个表示隔离级别的常量 TransactionDefinition.ISOLATION_DEFAULT:使用后端数据库默认的隔离级别,Mysql 默认采用的 REP ...