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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 《蝙蝠侠前传3:黑暗骑士崛起》蓝光高清720P 1080P 下载

    《蝙蝠侠前传3:黑暗骑士崛起》蓝光高清720P 1080P 下载

    2021年8月20日
  • mybatis多条件查询sql_sql模糊查询多个条件

    mybatis多条件查询sql_sql模糊查询多个条件步骤1:先运行,看到效果,再学习步骤2:模仿和排错步骤3:在前一步的基础上进行步骤4:模糊查询步骤5:多条件查询步骤1:先运行,看到效果,再学习老规矩,先下载下载区(点击进入)的可运行项目,配置运行起来,确认可用之后,再学习做了哪些步骤以达到这样的效果。步骤2:模仿和排错在确保可运行项目能够正确无误地运行之后,再严格照着教程的步骤,对代码模仿一遍。模仿过程难免代码有出入,导致无法得到…

    2022年9月4日
  • 初步了解印度数学速算法

    初步了解印度数学速算法印度也是IT发达的国家;初步了解,印度的数学自己有一套东西,有的和我们从小学的有很大区别;它的速算法,有的计算看一眼就能给出答案;这东西练一下也许能帮助减低脑力劳动强度;大家有兴趣自己研究;先初步了解一下;下图,一看就给出答案;它的算法是,14加3得17,扩大10倍170,再加上3*4的结果12,最后结果182;对于十位上的数字相同,两位数乘两位数的算法:如:15*16(1)15+6=21(2)21*10=210(3)5*6=30(4)210+30=240…

    2022年5月23日
  • verilog调用vhdl模块_verilog和vhdl哪个更好

    verilog调用vhdl模块_verilog和vhdl哪个更好初学FPGA,记录一些个人的探索历程和心得。本文的初衷是为了验证VHDL和Verilog文件互相调用功能。以一个简单的二选一选择器为例,分别用两种方法实现功能。一、用Verilog文件调用VHDL以Verilog文件为顶层文件,调用VHDL模块,testbench为Verilog文件。1、新建project2、编写.vhd文件,FPGA_VHDL.vhd,文件名与模块名称一致;3、编写FPGA_Verilog.v文件,文件名与模块名称一致,且设为top文件。4、编写testbench文件

    2022年9月21日
  • 为项目选择的python解释器无效_PyCharm中创建项目时,在所创建的python虚拟环境下的pip失效问题…

    为项目选择的python解释器无效_PyCharm中创建项目时,在所创建的python虚拟环境下的pip失效问题…在文里,我简单地叙述了使用PyCharm创建一个flask项目时遇到的问题,以及解决这个问题的过程。其中比较值得注意的点有:①PyCharm创建新项目时的解释器配置②Python虚拟环境的创建等。一、问题描述在pyCharm中创建flask项目时,在建立好虚拟环境,开始自动用pip工具安装flask的时候,软件提示:Installflaskfailed。如图所示:PyCharm版本为2019…

    2022年8月26日
  • SOAP协议详解「建议收藏」

    SOAP协议详解「建议收藏」一.概念:SOAP:简单对象访问协议,是交换数据的一种协议规范,它是一个轻量级\简单的\基于xml的协议;它被设计成在WEB上交换结构化的和固化的信息。二.相关定义1.基于类对象的传输协议;2.SOAP封装(envelop),它定义了一个框架,描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们;3.SOAP编码规则(encodingrules),它定义了一种序列化机制,用

    2022年7月12日

发表回复

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

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