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


相关推荐

  • iPhone的屏幕尺寸和分辨率

    iPhone的屏幕尺寸和分辨率设计原型时,使用低分辨率的就可以。最终用户界面才使用高分辨率的,以适应苹果Retina屏的显示。iPhone4做原型时,可以用320*480,iPhone5做原型时,可以用320*568,iPhone6做原型时,可以用375*667,iPhone6Plus原型,可以用414×736, 参考链接:http://www.zhihu.com/question/2

    2022年5月14日
    41
  • Python中使用Flask、MongoDB搭建简易图片服务器

    Python中使用Flask、MongoDB搭建简易图片服务器

    2021年9月8日
    57
  • QCustomPlot鼠标跟随显示坐标值

    QCustomPlot鼠标跟随显示坐标值tags:QCustomPlothover背景Qt最大的优势就是各种库非常全,尤其在图表方面,在5.7版本之后虽然引入了原本企业版才有的QCharts,但相对于只有2个文件就可以引入库的QCustomPlot来说还是太臃肿了。这里解决一个使用图表的都会碰到的问题–跟随鼠标显示值,在QCustomPlot里非常简单,它早就给出了解决方案-QCPItemTracer.可以直接看下面…

    2022年10月16日
    0
  • 网络-访问控制

    网络-访问控制1.访问控制访问控制就是限制访问主体对访问客体的访问权限控制,决定主体对客体能做什么和做到什么程度访问主体(主动):用户,进程,服务访问客体(被动):数据库,资源,文件2.访问控制的两个过程认证:先由认证来检验主体(用户)的合法身份,在访问控制之前授权:由管理员决定和限制主体(用户)对资源的访问级别!!注意:审计也在主体对客体访问的过程中,但是,审计是访问过程中,对访问情况的记录和审查,他只是产生一些log,用来分析安全事故产生的原因,和访问控制无关,就是个辅助用的,可要可不要。3.访问控制

    2022年7月23日
    8
  • hz的单位换算速度_hz与w怎么换算

    hz的单位换算速度_hz与w怎么换算物质在1秒内完成周期性变化的次数叫做频率,常用f表示。物理中频率的单位是赫兹(Hz),简称赫,也常用千赫(kHz)或兆赫(MHz)或GHz做单位,单位符号为Hz。.hz是一个频率的单位,它表示物体在一秒钟之内振动一次,它的频率就是1hz。k代表千,khz即千赫芝;m代表兆,mkhz即兆赫芝;还有一个g代表京,它们都是英美换算单.20kHz等于20000Hz。具体换算过程如下。千赫兹(KHz)和赫兹…

    2022年9月6日
    3
  • PHP 正则表达式匹配函数 preg_match 与 preg_match_all

    PHP 正则表达式匹配函数 preg_match 与 preg_match_all

    2021年10月12日
    85

发表回复

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

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