借助#chatGPT#编写分割图片并加空白拼接代码

该代码示例展示了如何用Python的PIL库打开一张图片,将其分割成多个方块并保存,然后重新组合这些方块成一个新的图像,同时保持适当的间隔。这个过程涉及到图像的尺寸计算、切割、缩放以及粘贴操作。
摘要由CSDN通过智能技术生成

想编写程序实现下面图片的这种效果,找了半天没有找到想要的,于是借助chatGPT获得代码并修改,得到以下代码。

from PIL import Image
import numpy as np

# 打开图片文件
image = Image.open('test1.jpg')   #208*48

# 获取图片尺寸
width, height = image.size

# 计算每个方块的宽度和高度
block_width = width // 13
block_height = height // 3

# 遍历每个方块,并保存为单独的文件
for row in range(3):
    for col in range(13):
        # 计算方块的左上角和右下角坐标
        left = col * block_width
        top = row * block_height
        right = left + block_width
        bottom = top + block_height

        # 切割图片
        block = image.crop((left, top, right, bottom))
        # 保存为单独的文件
        block.save(f'block_{row}_{col}.jpg')
from PIL import Image, ImageOps

# 定义每个方块的尺寸和间隔
block_size = (16, 16)  # 每个方块的尺寸
padding_size = 5  # 方块之间的间隔

# 创建一个空白的大图像
result_size = (
    block_size[0] * 13 + padding_size * 12,
    block_size[1] * 3 + padding_size * 2
)
result_image = Image.new('RGB', result_size, (255, 255, 255))

# 遍历每个方块,并将它们放在合适的位置
for row in range(3):
    for col in range(13):
        # 打开当前方块的图像文件
        block_filename = f'block_{row}_{col}.jpg'
        block_image = Image.open(block_filename)

        # 将方块缩放到指定大小
        block_image = block_image.resize(block_size)

        # 计算方块在结果图像中的位置
        left = col * (block_size[0] + padding_size)
        top = row * (block_size[1] + padding_size)
        right = left + block_size[0]
        bottom = top + block_size[1]

        # 将方块粘贴到结果图像中
        result_image.paste(block_image, (left, top, right, bottom))

# 将结果图像保存到文件中
result_image.save('result.jpg')

原图

效果图

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值