当前位置: 首页 > news >正文

python朋友圈广告怎么这么火_利用Python让你的微信朋友圈与众不同,更加高大上...

前言

对于发朋友圈,我想很多人都有一种“执念”,那就是一定要集齐九张图,没有九张图的朋友圈是没有灵魂的!!!

为了集齐九张图也是煞费苦心,我会告诉你,用Python轻松制作九张图嘛,而且也特别的好看!

基本环境配置

版本:Python3

系统:Windows

模块:PIL

安装模块:pip install pillow

先睹为快

原图:

就是把一张图,分割成九张图....

实现代码也简单

from PIL import Image

import sys

#先将 input image 填充为正方形

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) #因为朋友圈一行放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 = 1

for image in image_list:

image.save(str(index) + '.png', 'PNG')

index += 1

if __name__ == '__main__':

file_path = "4.jpg"

image = Image.open(file_path)

#image.show()

image = fill_image(image)

image_list = cut_image(image)

save_images(image_list)

复制以上代码,就可以直接运行了。赶紧去发个朋友圈试试吧。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 这个世界,有点创新真难啊
  • python2和python3的不同点_Django python2和python3的区别
  • 笑林广记
  • python绘图库seaborn_Python 绘图总结(seaborn库的使用) (上)
  • ITCAST心法第2讲:“学”“问”之道
  • 2字节取值范围_c++的变量类型的数值范围(常用)
  • extremecomponents使用struts2国际化信息的方法
  • 如何快速找到package里的main_餐饮加盟行业如何快速找到精准客户?
  • 数据库事务性操作
  • python random库全部_python常用库之random
  • 查询中使用CASE结构
  • python制作网页服务器_基于python实现简单网页服务器代码实例
  • 转账事务
  • python 输入函数_Python交互环境下打印和输入函数的实例内容
  • Windows Embedded CE 6.0开发初体验(五)构建CE平台
  • ➹使用webpack配置多页面应用(MPA)
  • 2017-09-12 前端日报
  • C# 免费离线人脸识别 2.0 Demo
  • in typeof instanceof ===这些运算符有什么作用
  • macOS 中 shell 创建文件夹及文件并 VS Code 打开
  • UEditor初始化失败(实例已存在,但视图未渲染出来,单页化)
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 强力优化Rancher k8s中国区的使用体验
  • 通过npm或yarn自动生成vue组件
  • 协程
  • 要让cordova项目适配iphoneX + ios11.4,总共要几步?三步
  • 怎么将电脑中的声音录制成WAV格式
  • No resource identifier found for attribute,RxJava之zip操作符
  • 从如何停掉 Promise 链说起
  • ​secrets --- 生成管理密码的安全随机数​
  • ## 1.3.Git命令
  • #《AI中文版》V3 第 1 章 概述
  • #Java第九次作业--输入输出流和文件操作
  • (4)事件处理——(6)给.ready()回调函数传递一个参数(Passing an argument to the .ready() callback)...
  • (C#)Windows Shell 外壳编程系列4 - 上下文菜单(iContextMenu)(二)嵌入菜单和执行命令...
  • (C#)获取字符编码的类
  • (Java实习生)每日10道面试题打卡——JavaWeb篇
  • (附源码)springboot宠物医疗服务网站 毕业设计688413
  • (三)mysql_MYSQL(三)
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (转)linux下的时间函数使用
  • (自用)网络编程
  • **登录+JWT+异常处理+拦截器+ThreadLocal-开发思想与代码实现**
  • .NET 中创建支持集合初始化器的类型
  • .NET8使用VS2022打包Docker镜像
  • .NET连接MongoDB数据库实例教程
  • .NET实现之(自动更新)
  • .net图片验证码生成、点击刷新及验证输入是否正确
  • .net专家(高海东的专栏)
  • :class的用法及应用
  • @hook扩展分析
  • [145] 二叉树的后序遍历 js
  • [2016.7 Day.4] T1 游戏 [正解:二分图 偏解:奇葩贪心+模拟?(不知如何称呼不过居然比std还快)]
  • [20190416]完善shared latch测试脚本2.txt