python 图片拼图的制作 确定不来尝试一下……

python 图片拼图的制作 确定不来尝试一下……

8小时Python零基础轻松入门

图片迷宫九宫格的制作,确定不来尝试一下吗?下面来看一下效果图吧


在这里插入图片描述


在这里插入图片描述

效果是不是不错呢。

下面介绍一下这炫酷的图是如何制作的吧。

1、导入需要使用到的模块

from PIL import Image
import random

2、 输入图片的路径,获取图片的信息

# 导入图片
path = input("请输入图片路径:")
path1 = input("请输入需要保存的路径:")
image = Image.open(path)

# 获取图片数据 大小等
(width, height) = image.size  

3、对图片的大小进行简单的处理(处理大小为3的倍数)

width = width - width % 3
height = height - height % 3

4、对图片进行切割

# 分割图片为九块
image_part = []

image_part.append(image.crop((0, 0, width // 3, height // 3)))
image_part.append(image.crop((width // 3, 0, 2 * width // 3, height // 3)))
image_part.append(image.crop((2 * width // 3, 0, width, height // 3)))
image_part.append(image.crop((0, height // 3, width // 3, 2 * height // 3)))
image_part.append(image.crop((width // 3, height // 3, 2 * width // 3, 2 * height // 3)))
image_part.append(image.crop((2 * width // 3, height // 3, width, 2 * height // 3)))
image_part.append(image.crop((0, 2 * height // 3, width // 3, height)))
image_part.append(image.crop((width // 3, 2 * height // 3, 2 * width // 3, height)))
image_part.append(image.crop((2 * width // 3, 2 * height // 3, width, height)))

5、对获取到的图片数组进行打乱

# 打乱图片顺序
random.shuffle(image_part)

6、新建一个画布,对切割的图片进行粘贴

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

7、保存打乱之后的九宫格图片

draw.save(path1)     # 路径自定义

就这样子迷宫九宫格就制作成功了,是不是很简单呢。快来动手尝试一下吧。

注意:
1、对图片进行切割,记住需要对图片大小进行处理,必须是整数,同时切割之后的大小也必须是整数;(所以要求图片的大小为3的倍数)
2、对切割之后的图片列表打乱顺序;

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

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

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


相关推荐

  • TCP四次挥手详解[通俗易懂]

    TCP四次挥手详解[通俗易懂]在开始之前可以先了解一下TCP三次握手TCP四次挥手过程和状态变迁在断开连接之前客户端和服务器都处于ESTABLISHED状态,双方都可以主动断开连接,以客户端主动断开连接为优。第一次挥手:客户端打算断开连接,向服务器发送FIN报文(FIN标记位被设置为1,1表示为FIN,0表示不是),FIN报文中会指定一个序列号,之后客户端进入FIN_WAIT_1状态。也就是客户端发出连接释放报文段(FIN报文),指定序列号seq=u,主动关闭TCP连接,等待服务器的确认。第二次挥…

    2022年6月2日
    37
  • js 中的构造函数,构造函数作用,构造函数和普通函数的区别

    js 中的构造函数,构造函数作用,构造函数和普通函数的区别函数的定义方式:1.声明式函数定义:function函数名(){};这种定义方式,会将函数声明提升到该函数所在作用域的最开头,也是就无论你在这个函数的最小作用域的那儿使用这种方式声明的函数,在这个作用域内,你都可以调用这个函数为你所用。2.函数表达式:letfun=function(){};此方式定义的函数,只能在该作用域中,这段赋值代码执行之后才能通过fun()调用函数,否则,由于变量声明提升,fun===undefined。3.newFunction形式:varfun1

    2025年10月4日
    4
  • python vimrc[通俗易懂]

    python vimrc[通俗易懂]全局:在/etc/vim/vimrc中添加 本地:~/.vimrcsetfileencodings=utf-8,gbksetambiwidth=double“支持中文setsmartindentsetsmarttabsetexpandtabsettabstop=4setsofttabstop=4setshiftwidth=

    2022年6月13日
    30
  • Laravel实现定时任务的示例代码

    Laravel实现定时任务的示例代码

    2021年10月24日
    37
  • 计算机网络协议——通信协议综述

    计算机网络协议——通信协议综述通信协议综述概述一、为什么学习网络协议1.1常见的网络协议二、网络分层的真正含义2.1为什么网络要分层?2.2浏览点击请求过程2.3揭秘层与层之间的关系三、ifconfig命令行的由来3.1ip地址3.2无类型域间选路(CIDR)3.3公有IP地址和私有IP地址3.4MAC地址四、DHCP和PXE:ip的由来4.1动态主机配置协议(DHCP)4.2解析DHCP的工作方式4.3…

    2022年10月3日
    6
  • 分享psd格式怎么预览的方法和psd文件缩略图插件[通俗易懂]

    分享psd格式怎么预览的方法和psd文件缩略图插件[通俗易懂]内容提要:文章对psd文件格式进行了使用说明,另外关于psd格式怎么预览的问题提供了一个补丁供学习者使用,需要这个psd格式预览补丁的朋友直接下载按说明文件进行操作。 Photoshop教程中制作的文件就是PSD文件。PSD文件格式可以将制作文件时所用到的图层、蒙版、通道等等信息全部保存起来,也就是说PSD文件是可再次编辑的文件。对PS感兴趣想学习交流的朋友可加PS学习交流群:14257

    2022年6月12日
    107

发表回复

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

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