- ubuntu12.04环境下使用kvm ioctl接口实现最简单的虚拟机
- Ubuntu 通过无线网络安装Ubuntu Server启动系统后连接无线网络的方法
- 在Ubuntu上搭建网桥的方法
- ubuntu 虚拟机上网方式及相关配置详解
CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.
这篇CFSDN的博客文章Python实现九宫格式的朋友圈功能内附“马云”朋友圈由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.
pil(python imaging library)是一个非常强大的python库,但是它支持python2.x, 在python3中则使用的是pillow库,它是从pil中fork出来的一个分支。提供了非常强大的图片处理能力,包括存储、格式转换、图像处理等操作 。
。
有时候看到朋友圈的九宫格动态,是不是感觉非常有逼格呢? 今天就用python来实现九宫格切图.
先来看几张效果图 。
大致思路分为以下几步 。
1.读取初始照片 。
2.比较照片的宽高,数值较大的作为边长生成一个新的空白图片 。
3.将初始图片粘贴至第二部创建的空白图片上 。
4.将图片进行切割 。
5.保存 。
直接上代码 。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
from
pil
import
image
image
=
image.
open
(
'图片路径.jpg'
)
width, height
=
image.size
# 高和宽进行比较,较大的为新图片的长度
new_length
=
height
if
height > width
else
width
# 创建一张正方形空图片,底色为白色,
new_image
=
image.new(image.mode, (new_length, new_length), color
=
'white'
)
# 将要处理的图片粘贴到新创建的图片上,居中
if
height > width:
# 如果高度大于宽,则填充图片的宽度
new_image.paste(image, (
int
((new_length
-
width)
/
2
)),
0
)
else
:
new_image.paste(image, (
0
,
int
((new_length
-
height)
/
2
)))
# 朋友圈一排三张图片因此宽度切割成3份
new_length
=
int
(new_length
/
3
)
# 用来保存每一个切图
box_list
=
[]
for
i
in
range
(
0
,
3
):
for
j
in
range
(
0
,
3
):
# 确定每个图片的位置
box
=
(j
*
new_length, i
*
new_length, (j
+
1
)
*
new_length, (i
+
1
)
*
new_length)
# (left, top, right, bottom)
box_list.append(box)
# 通过crop函数对图片进行切割
image_list
=
[new_image.crop(box)
for
box
in
box_list]
for
(index, image)
in
enumerate
(image_list):
image.save(
str
(index)
+
'.png'
,
'png'
)
print
(
"九宫格图片生成完毕!"
)
|
为了方便使用,通过pyinstaller对脚本进行打包成exe文件.
pip3 install pyinstaller 。
执行 。
pyinstaller -f cut_picture.py 。
就会在当前目录生成一个dist文件夹,里面就有我们最终需要的exe文件。如何使用呢?只需要在将要切割的图片重命名为“a.jpg”,放入同级目录中,双击启动即可 。
效果图如下 。
总结 。
以上所示是小编给大家介绍的python实现九宫格式的朋友圈功能内附“马云”朋友圈,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的! 。
原文链接:https://www.cnblogs.com/wyl-0120/p/10823102.html 。
最后此篇关于Python实现九宫格式的朋友圈功能内附“马云”朋友圈的文章就讲到这里了,如果你想了解更多关于Python实现九宫格式的朋友圈功能内附“马云”朋友圈的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。
十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) @ 目录 十,Spring Boot 的内容协商的详细剖析(附+Debug调试说明) 1. 基本
八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) @ 目录 八,SpringBoot Web 开发访问静态资源(附+详细源码剖析) 1. 基本介绍
在sql语句执行前 DB::enableQueryLog(); sql sql sql sql sql dd(DB::getQueryLog()); ?
本文实例讲述了PHP global全局变量的使用与注意事项。分享给大家供大家参考,具体如下: 使用global在方法里面声明外部变量为全局变量,即可以调用该变量。 示例1. global基本用法
SSO简介 定义: 传统的单站点登录访问授权机制是:登录成功后将用户信息保存在session中,sessionId保存在cookie中,每次访问需要登录访问的资源(url)时判断当前sessio
性能测试,在编写代码后,单元测试及性能测试是重要的验收点,好的性能测试可以让我们提前发现程序中存在的问题。 测试用例 在Rust中,测试通常有两部分,一部分是文档测试,一部分是模块测试。 通常我们
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
我正在制作一个非常简单的应用程序,它有一个输入框和一个按钮。 Input 用于输入email 使用事件处理器订阅按钮 输入电子邮件并点击按钮将进行 api 调用,(此方法有效) subscribe
一个星期以来,我一直在努力寻找如何做到这一点,但一直无法做到。我的 html 导航栏看起来像这样。
我们经常在程序设计中用到的数组,同样在脚本中很常用。本节就详细介绍一下数组,以及哈希表在PowerShell中的使用。 数组 在PowerShell中,声明一个变量为数组时,需要使用符号&quo
方法一:先查询出所有记录,然后在逻辑层转化为拼音首字母后查询,显然傻瓜才会这么做。 方法二:在需要搜索的表中添加一个字段用于存放被检索字段内容对应的拼音,在搜索的时候同时去查询这两个字
intellij idea2021是一款java开发神器,功能丰富好用,本文提供其安装包、破解版、补丁、绿色版、激活码等下载,手把手教大家完美安全永久安装破解,亲测绝对可以永久激活。 此方法支持所有的
我在构建一个网站时遇到了一个问题,即我的 h1 内容与我的导航栏重叠。我在 css 中使用了 margin-top 标签,但它不起作用。
前言 时隔2年.(PS:其实陆陆续续在优化,不过没发博客).. .本组件又迎来了新的更新... 很久没更新博客了.生了娃,换了工作单位,太忙了..实在抱歉 NE
为什么 CLGeocoder reverseGeocodeLocation 在查找地址时返回具有不同纬度/经度的地标? 背景:就用户在 map 上“长按”以放置图钉而言,但我的代码对此进行了反向地理编
我是一名优秀的程序员,十分优秀!