相信很多朋友在发朋友圈的时候,都会发一些话语,有些还会配一张图,但是普通的配图怎么符合我们程序员的身份呢?发出去都觉得没牌面,应该整点技术性的活。

今天给大家带来一个项目,这个小项目只用50行代码就能实现,它的名字叫做PIL(Python Image Library)。

其实这个项目要做的事情很简单,就是把原来的一张图切图,变为9张图,看着就有牌面了,成功霸屏。

那有的朋友就会问了,这也只是正方形的图片,那我的图片要是很长或者很宽,切不了9张图,那怎么办?

其实很简单,只要把高和宽计算出来,然后取最大值就可以了,比如下面这一张Python图片:

就可以构造出一张正方形的图片啦

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

其实这个小程序的开发思路也很简单,用图片展示给大家康康:

对应代码如下:# -*- coding: utf-8 -*-'''将一张图片填充为正方形后切为9张图'''from PIL import Imageimport 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.sizeitem_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 = 1for image in image_list:image.save('./result/python'+str(index) + '.png', 'PNG')index += 1if __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代码发一个炫酷的朋友圈相关推荐

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

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

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

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

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

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

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

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

  5. python变量保存在哪里_python小技巧——将变量保存在本地及读取

    在用jupyter notebook写python代码的过程中会产生很多变量,而关闭后或者restart jupyter kernel后所有变量均会消失,想要查看变量就必须将代码重新再运行一遍,而想在 ...

  6. python查询模块所有类_python 小技巧(import模块、查询类继承关系、安装包)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 欢迎转载,也请保留这段声明.谢谢! 在这里列举一些我使用Python时积累的小技巧.这些技巧是我在使用Python过程 ...

  7. python保存变量到本地_python小技巧——将变量保存在本地及读取

    在用jupyter notebook写python代码的过程中会产生很多变量,而关闭后或者restart jupyter kernel后所有变量均会消失,想要查看变量就必须将代码重新再运行一遍,而想在 ...

  8. python中sort函数源代码_Python中sort和sorted函数代码解析

    Python中sort和sorted函数代码解析 本文研究的主要是Python中sort和sorted函数的相关内容,具体如下. 一.sort函数 sort函数是序列的内部函数 函数原型: L.sor ...

  9. 如何用Python代码发一个炫酷的朋友圈

    相信很多朋友在发朋友圈的时候,都会发一些话语,有些还会配一张图,但是普通的配图怎么符合我们程序员的身份呢?发出去都觉得没牌面,应该整点技术性的活. 今天给大家带来一个项目,这个小项目只用50行代码就能 ...

最新文章

  1. Kafka源码剖析 —— 网络I/O篇 —— 浅析KafkaSelector
  2. python比java简单好学-21、PHP和python/JAVA比,哪个更好学?
  3. mysql 同机做主从
  4. java 坐标系转换_入门-Python-GIS坐标转换
  5. 17.丰富的else语句和简洁的with语句
  6. java json自定义_java返回json设置自定义的格式
  7. AOP in dotnet :AspectCore的参数拦截支持
  8. cuda笔记-一个Block多线程求卷积
  9. 【Java】Java命名规范
  10. 2020年 福建物联网产值或达千亿
  11. Android 下拉刷新组件SwipeToLoadLayout源码解析
  12. 一个出色的UI设计师需要具备哪些能力?
  13. 新生代民工 书籍推荐
  14. 2022起重机司机(限门式起重机)理论题库模拟考试平台操作
  15. 三星PM981(a)硬盘安装黑苹果(第五版)
  16. STM8L IAP升级过程记录
  17. 如何用GoldWave交叉淡化两首音乐?
  18. 台式计算机开不了机,台式电脑开不了机
  19. kafka 偏移量latest、earliest
  20. Unable to find instance for XXXX

热门文章

  1. 物理学的困惑: 个体与交互
  2. CODESYS自动化仿真软件如何与EtherNet IP工业RID读写器|读卡器CK-RF102AN-E01联机工作
  3. 蔚来被勒索225万美元/ 马斯克称只要找到「傻子」接班就辞职/ GitHub与微信合作…今日更多新鲜事在此...
  4. 自学Matlab必备的60个小程序代码
  5. html文字自动调整位置,启步学HTML代码(3)文字显示位置控制的代码
  6. php开发的app商城,如何利用PHP语言开发手机APP
  7. 安徽理科480分学计算机的大学,2021年安徽高考480分理科能上什么大学,安徽理科480分能上什么大学...
  8. awgn函数 matlab measure 什么意思,Matlab中 awgn 函数输入参数带有‘measured’ 时snr的含义...
  9. 我的大学(2001-2005,从文艺青年到2B青年)
  10. corenlp分词 stanford_Stanford CoreNLP 入门指南