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


相关推荐

  • Linux查看用户及其权限管理

    Linux查看用户及其权限管理

    2021年10月23日
    43
  • django urls_php通过url传递参数

    django urls_php通过url传递参数前言为什么我们url需要命名呢?url命名的作用是什么?我们先来看一个案例案例我们先在一个Django项目中,创建2个App,前台front和后台cms,然后在各自app下创建urls.py文件

    2022年8月7日
    5
  • 安卓模拟器打开开发者模式(USB调试)的方法

    安卓模拟器打开开发者模式(USB调试)的方法第一步:进入设置第二步:找到“关于电脑”(或者是“关于手机”)第三步:连续点击版本号字样,会有提示‘继续点击xx秒即可进入开发者模式’第四步:重新进入设置,会看到‘开发者选项’第五步:进入开发者选项,打开“USB调试”…

    2025年9月6日
    5
  • 论文文献阅读笔记_IN characteristic of learning

    论文文献阅读笔记_IN characteristic of learningMGN的核心思想是利用globalfeature+finegrainfeature做特征融合然后分类,做part-based的branch取得很简单就是等分,但是为了让模型能收敛,用了多个patch的loss混合训练。看文章结果很不错,只用了给的数据集里面的trainset就能达到90+。github上只有pytorch版本,准备这段时间自己搞一个纯TF版本出来。Motivatio…

    2022年9月27日
    3
  • Springboot框架是什么_javaweb框架主要的三大基本框架

    Springboot框架是什么_javaweb框架主要的三大基本框架对于spring框架,我们接触得比较多的应该是springmvc、和spring。而spring的核心在于IOC(控制反转)和DI(依赖注入)。而这些框架在使用的过程中会需要配置大量的xml,或者需要做很多繁琐的配置。springboot框架是为了能够帮助使用spring框架的开发者快速高效的构建一个基于spirng框架以及spring生态体系的应用解决方案。它是对“约定优于配置”这个理念下的一个最佳实践。因此它是一个服务于框架的框架,服务的范围是简化配置文件。…

    2022年8月20日
    6
  • qq能够正常登陆但使用域名无法访问internet的解决方法

    qq能够正常登陆但使用域名无法访问internet的解决方法

    2021年9月11日
    119

发表回复

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

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