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

想编写程序实现下面图片的这种效果,找了半天没有找到想要的,于是借助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
    评论
### 回答1: 以下是一个使用 Python 编写的简单程序,可以将一张图片进行缩放和拼接,并将结果保存为新的图片文件。 ```python from PIL import Image # 打开原始图片 img = Image.open('input_image.png') # 缩放图片 img_resized = img.resize((500, 500)) # 拼接图片 img_concat = Image.new('RGB', (1000, 500)) img_concat.paste(img_resized, (0, 0)) img_concat.paste(img_resized, (500, 0)) # 保存拼接后的图片 img_concat.save('output_image.png') ``` 这个程序使用了 Python 中的 PIL 库来处理图片。它首先打开输入的图片文件,然后使用 `resize()` 方法将其缩放到指定的大小。接下来,使用 `Image.new()` 方法创建一个新的图片,并使用 `paste()` 方法将缩放后的图片拼接到新的图片上。最后,使用 `save()` 方法将拼接后的图片保存为新的图片文件。 ### 回答2: 以下是一个使用Python进行图片缩放和拼接,并保存结果的示例代码: ```python from PIL import Image def resize(image_path, new_width): img = Image.open(image_path) width, height = img.size ratio = new_width / width new_height = int(height * ratio) resized_img = img.resize((new_width, new_height)) return resized_img def concatenate(images): widths, heights = zip(*(i.size for i in images)) total_width = sum(widths) max_height = max(heights) new_image = Image.new('RGB', (total_width, max_height)) x_offset = 0 for img in images: new_image.paste(img, (x_offset, 0)) x_offset += img.width return new_image image1 = resize('image1.jpg', 200) image2 = resize('image2.jpg', 200) concatenated_image = concatenate([image1, image2]) concatenated_image.save('combined_image.jpg') ``` 这段代码使用了PIL库(Python Imaging Library)来处理图片。首先,我们定义了一个`resize`函数来缩放图片,该函数接受图片路径和新的宽度作为参数,并返回缩放后的图片对象。 然后,我们定义了一个`concatenate`函数来拼接图片。该函数接受一个图片对象的列表作为参数,并返回拼接后的图片对象。在拼接过程中,我们根据每张图片的宽度进行水平排列。 最后,我们使用`resize`函数来缩放原始图片,并保存为`image1`和`image2`。然后,我们将缩放后的图片作为参数传递给`concatenate`函数,将两张图片拼接在一起。最终,我们保存拼接后的图片为`combined_image.jpg`。 请注意,在运行代码之前,需要确保已安装PIL库,可以使用以下命令进行安装:`pip install Pillow`。同时,确保图片路径正确,并已存在相应的图片文件。 ### 回答3: 以下是一个使用Python图片进行缩放和拼接代码: ```python from PIL import Image def scale_image(image_path, scale_factor): original_image = Image.open(image_path) width, height = original_image.size new_width = int(width * scale_factor) new_height = int(height * scale_factor) resized_image = original_image.resize((new_width, new_height)) return resized_image def concatenate_images(image_paths, orientation, output_path): images = [Image.open(image_path) for image_path in image_paths] widths, heights = zip(*(i.size for i in images)) if orientation == "horizontal": total_width = sum(widths) max_height = max(heights) new_image = Image.new('RGB', (total_width, max_height)) x_offset = 0 for image in images: new_image.paste(image, (x_offset, 0)) x_offset += image.width elif orientation == "vertical": total_height = sum(heights) max_width = max(widths) new_image = Image.new('RGB', (max_width, total_height)) y_offset = 0 for image in images: new_image.paste(image, (0, y_offset)) y_offset += image.height new_image.save(output_path) # 示例用法 path1 = "image1.png" path2 = "image2.jpg" path3 = "image3.bmp" # 缩放图片 scaled_image = scale_image(path1, 0.5) # 缩放因子为0.5 scaled_image.save("scaled_image.png") # 拼接图片 concatenate_images([path1, path2, path3], "horizontal", "concatenated_image.png") ``` 这段代码使用了Python的Pillow库来操作图像。`scale_image`函数可以接受一个图像路径和一个缩放因子,将图片按照缩放因子进行缩放,并返回新的缩放后的图像对象。`concatenate_images`函数可以接受多个图片路径,拼接它们并根据指定的方向(水平或垂直)保存到指定路径。 请确保在运行代码之前安装了Pillow库(可以使用`pip install pillow`命令进行安装)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值