python 斑马式切图片 拼接 酷毙了

python 斑马式切图片 拼接 酷毙了

8小时Python零基础轻松入门

斑马式切割图片 拼接,制作一幅美丽动人的图片原来如此简单。

下面看看制作效果吧

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

是不是非常的炫酷,下面让我们一起来看一看到底是如何生成的吧

1、 导入需要使用的模块

from PIL import Image

2、导入需要进行斑马切割的图片

path1 = "F:\图片\\d.jpg"            # 进行斑马图切割的图片
path2 = "F:\图片\\b.jpg"

# 打开图片
image1 = Image.open(path1)                              # 打开图片
image2 = Image.open(path2)

3 、 获取图片的大小(选取的图片尽量大小一致,如果不是一致,可以先对图片进行一定的处理)

(width,height) = image1.size
print("image1 size:",image1.size)            # 获取图片的大小
print("image2 size:",image2.size)            # 两个图片的大小需要相同,不相同的图片大小效果不好看

4 、 对图片进行切割

image1_part = []                # 对图片一进行切割保存

image1_part.append(image1.crop((0,0, width, height//5)))
image1_part.append(image1.crop((0,height//5, width, 2*height//5)))
image1_part.append(image1.crop((0,2*height//5, width, 3*height//5)))
image1_part.append(image1.crop((0, 3*height//5, width, 4*height//5)))
image1_part.append(image1.crop((0, 4 * height // 5, width, height)))

image2_part = []                # 对图片二进行切割保存

image2_part.append(image2.crop((0, 0, width, height // 5)))
image2_part.append(image2.crop((0, height // 5, width, 2 * height // 5)))
image2_part.append(image2.crop((0, 2 * height // 5, width, 3 * height // 5)))
image2_part.append(image2.crop((0, 3 * height // 5, width, 4 * height // 5)))
image2_part.append(image2.crop((0, 4 * height // 5, width, height)))

5 、创建一个画布,对切割出来的图片碎片进行粘贴

# 新建一个画布,粘贴进去
    draw = Image.new("RGB", (width , height * 2), color=(255, 255, 255))
    draw.paste(image1_part[0], (0, 0, width, height // 5))
    draw.paste(image2_part[0], (0, height // 5, width, 2 * height // 5))
    draw.paste(image1_part[1], (0, 2 * height // 5, width, 3 * height // 5))
    draw.paste(image2_part[1], (0, 3 * height // 5, width, 4 * height // 5))
    draw.paste(image1_part[2], (0, 4 * height // 5, width, height))
    draw.paste(image2_part[2], (0, height, width, 6 * height // 5))
    draw.paste(image1_part[3], (0, 6 * height // 5, width, 7 * height // 5))
    draw.paste(image2_part[3], (0, 7 * height // 5, width, 8 * height // 5))
    draw.paste(image1_part[4], (0, 8 * height // 5, width, 9 * height // 5))
    draw.paste(image2_part[4], (0, 9 * height // 5, width, 2 * height))

    draw.save("F:\图片\\abc.jpg")
    draw.show()

是不是很简单就制作成功了呢,下面快来尝试一下吧

注意:
1、两张图片的大小最好设置为一致的;
2、对于切割的大小可以自己设置,切割为大小不等的模块也是随意的;

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/115152.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • postMessage的使用

    postMessage的使用postMessage是H5的API,用来解决跨页面通信的。postMessage的使用分为发送方和接收方。发送方的代码用法如下:otherWindow.postMessage(message,targetOrigin,[transfer]);otherWindow是接收方的window对象。可以通过以下几种方法获得,例如window.open()方法返回的值就是打开页面的window对象,或…

    2022年7月13日
    33
  • 海康威视摄像头不支持的码流类型_v380pro摄像头怎么连接无线网

    海康威视摄像头不支持的码流类型_v380pro摄像头怎么连接无线网前言:对于HIS视频采集、输出和编解码,直接使用海思SDK中的sample代码+NVP6124就可以实现,这里有提供HIMPP开发文档、海思sample源码和NVP6124的驱动代码,可以自行去下载;HIMPP开发文档:https://download.csdn.net/download/u012478275/11573292海思sample源码:…

    2022年9月23日
    0
  • mysql 查看权限_MySQL查看用户权限

    mysql 查看权限_MySQL查看用户权限在MySQL中,可以通过查看mysql.user表中的数据记录来查看相应的用户权限,也可以使用SHOWGRANTS语句查询用户的权限。mysql数据库下的user表中存储着用户的基本权限,可以使用SELECT语句来查看。SELECT语句的代码如下:SELECT*FROMmysql.user;要执行该语句,必须拥有对user表的查询权限。注意:新创建的用户只有登录…

    2022年6月18日
    21
  • 点对点通信

    点对点通信点对点通信client/server

    2022年7月1日
    19
  • ps如何激活成功教程安装免费_PS安装教程

    ps如何激活成功教程安装免费_PS安装教程原文:https://blog.csdn.net/lzp2015/article/details/830257611.下载安装包与注册机window下安装包https://pan.baidu.com/s/1VtAdWGJe5gRJiMGRuqoluw2.解压安装注意:如果之前安装过,请确保卸载成功以下是window64位安装教程①双击scrt_sfx732-x64….

    2022年10月21日
    0
  • NFV基本概述[通俗易懂]

    NFV基本概述[通俗易懂]NFV介绍定义:NFV,即网络功能虚拟化,NetworkFunctionVirtualization。通过使用x86等通用性硬件以及虚拟化技术,来承载很多功能的软件处理。从而降低网络昂贵的设备成本。可以通过软硬件解耦及功能抽象,使网络设备功能不再依赖于专用硬件,资源可以充分灵活共享,实现新业务的快速开发和部署,并基于实际业务需求进行自动部署、弹性伸缩、故障隔离和自愈等。目…

    2022年9月10日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号