利用Python实现朋友圈中的九宫格图片效果

 更新时间:2020-09-04 02:32:22   作者:佚名   我要评论(0)

前言
大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。
说到切图,Python 就可以实现,主要用到的 Pyt

前言

大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。

说到切图,Python 就可以实现,主要用到的 Python 库为 Pillow,安装使用 pip install pillow 即可,切图的主要步骤如下:

  1. 打开要处理的图片
  2. 判断打开的图片是否为正方形
  3. 如果是正方形,就进行九等分,如果不是正方形,先用白色填充为正方形,再进行九等分
  4. 保存处理完的图片

主要实现代码如下:

# 填充新的 image
def fill_image(image):
 width, height = image.size
 _length = width
 if height > width:
  _length = height
 new_image = Image.new(image.mode, (_length, _length), color='white')
 if width > height:
  new_image.paste(image, (0, int((_length - height) / 2)))
 else:
  new_image.paste(image, (int((_length - width) / 2), 0))
 return new_image

# 裁剪 image
def cut_image(image):
 width, height = image.size
 _width = int(width / 3)
 box_list = []
 for i in range(0, 3):
  for j in range(0, 3):
   box = (j * _width, i * _width, (j + 1) * _width, (i + 1) * _width)
   box_list.append(box)
   image_list = [image.crop(box) for box in box_list]
 return image_list

# 将 image 列表的里面的图片保存
def save_images(image_list, res_dir):
 index = 1
 if not os.path.exists(res_dir):
  os.mkdir(res_dir)
 for image in image_list:
  new_name = os.path.join(res_dir, str(index) + '.png')
  image.save(new_name, 'PNG')
  index += 1

原图:

效果图:

总结

到此这篇关于利用Python实现朋友圈中的九宫格图片效果的文章就介绍到这了,更多相关Python实现朋友圈九宫格图片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
  • python制作朋友圈九宫格图片
  • Python实现九宫格式的朋友圈功能内附“马云”朋友圈
  • python生成九宫格图片
  • python实现图片九宫格分割
  • Python切图九宫格的实现方法
  • Python切割图片成九宫格的示例代码

相关文章

  • 利用Python实现朋友圈中的九宫格图片效果

    利用Python实现朋友圈中的九宫格图片效果

    前言 大家应该经常在朋友圈看到有人发九宫格图片,其实质就是将一张图片切成九份,然后在微信中一起发这九张图即可。 说到切图,Python 就可以实现,主要用到的 Pyt
    2020-09-04
  • 浅谈java中的声明常量为什么要用static修饰

    浅谈java中的声明常量为什么要用static修饰

    今天定义一个类常量,想着也只有这个类可以用到,就没用static关键字修饰。结果sonar代码检查提示: Rename this field "PERSON_TYPE_USER" to match the regular
    2020-09-04
  • Docker数据备份恢复实现过程详解

    Docker数据备份恢复实现过程详解

    数据的备份操作很容易,执行如下命令: docker run --volumes-from mydata --name backupcontainer -v $(pwd):/backup/ ubuntu tar cvf /backup/backup.tar /usr
    2020-09-04
  • Java 实现跨平台的操作方式

    Java 实现跨平台的操作方式

    什么是平台无关性 平台无关性就是一种语言在计算机上的运行不受平台的约束,一次编译,到处执行。 也就是说,用Java创建的可以执行二进制程序,能够不加改变的运行于
    2020-09-04
  • springboot prototype设置多例不起作用的解决操作

    springboot prototype设置多例不起作用的解决操作

    大多数人会直接这样写: @Bean @Scope(value = ConfigurableBeanFactory.SCOPE_PROTOTYPE) public TestBean getTestBean() { return new TestBean(); } Conf
    2020-09-04
  • git push 本地项目推送到远程分支的方法(git命令版)

    git push 本地项目推送到远程分支的方法(git命令版)

    1.在本地建立项目 可使用Eclipse,Idea等开发工具创建项目 打开根目录到所在在工程名的下一级 2.使用git 客户端 进入到上图目录HelloWord的文件夹里面 3.初始化项
    2020-09-04
  • 详解pytorch中squeeze()和unsqueeze()函数介绍

    详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压。 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一
    2020-09-04
  • Django实现微信小程序支付的示例代码

    Django实现微信小程序支付的示例代码

    1.下载相关的库 微信官方已经提供了方便开发者的SDK,可是使用pip方式下载: pip install wechatpy 2. 在项目的settings.py文件添加相关配置 具体的参数需要自己
    2020-09-04
  • 解决for循环为空不需要判断的问题

    解决for循环为空不需要判断的问题

    关于网上说的增强式for和普通for循环为空不需要判断的问题: public class testData { public static void main(String[] args) { List<String> list = new
    2020-09-04
  • java实现Object转String的4种方法小结

    java实现Object转String的4种方法小结

    1.object.toString()方法 这种方法要注意的是object不能为null,否则会报NullPointException,一般别用这种方法。 2.String.valueOf(object)方法 这种方法不必担心ob
    2020-09-04

最新评论