zjg121 发表于 2024-3-31 00:43

图片旋转拼接

本帖最后由 zjg121 于 2024-3-31 21:06 编辑

打包成exe的源文件。


https://static.52pojie.cn/static/image/hrline/4.gif


成品出来啦!名称是《拼接地板砖》。见下图:

下载链接:https://wwi.lanzoup.com/iBdJA1t99fwb

https://static.52pojie.cn/static/image/hrline/4.gif




功能增强:可操作一张图,也可以操作一个文件夹中的所有图。1路径不能有中文,2图片正方形最好。
from PIL import Image
import cv2
import os


def process_image(image_path):
    # 读取图片
    image = cv2.imread(image_path)
    if image is None:
      print(f"Error: Could not read image at {image_path}")
      return None

      # 这里放置您的图片处理代码
    # 加载原图
    original_image = Image.open(image_path)# 替换为你的图片路径

    # 获取原图的尺寸
    width, height = original_image.size

    # 计算新图的尺寸(2倍宽2倍高)
    new_width = 2 * width
    new_height = 2 * height

    # 创建一个新的空白图像,大小和原图的两倍一样大
    new_image = Image.new('RGB', (new_width, new_height))

    # 将原图粘贴到新图的左上角
    new_image.paste(original_image, (0, 0))

    # 旋转原图90度并粘贴到新图的右上角
    rotated_90 = original_image.rotate(-90)
    new_image.paste(rotated_90, (width, 0))

    # 旋转原图180度并粘贴到新图的右下角
    rotated_180 = original_image.rotate(180)
    new_image.paste(rotated_180, (width, height))

    # 旋转原图270度并粘贴到新图的左下角
    rotated_270 = original_image.rotate(-270)
    new_image.paste(rotated_270, (0, height))

    # 保存新图
    new_image.save(image_path + '.png')# 替换为你想要保存新图的路径
    print(f"Processed image saved to {image_path + '.png'}")


def process_images_in_folder(folder_path):
    # 确保路径存在
    if not os.path.isdir(folder_path):
      print(f"Error: {folder_path} is not a valid directory.")
      return

      # 遍历文件夹中的所有文件
    for filename in os.listdir(folder_path):
      # 检查文件是否为图片(这里假设图片是jpg格式,您可以根据需要添加更多格式)
      if filename.lower().endswith(('.png', '.jpg', '.jpeg', '.bmp', '.tiff')):
            file_path = os.path.join(folder_path, filename)
            process_image(file_path)


# 示例:处理文件夹中的所有图片
process_images_in_folder('d:/a')

# 示例:处理单个图片
# process_image('d:/a/12.png')




https://static.52pojie.cn/static/image/hrline/line9.png

一张原图(d:/a/input.png),绕右下角旋转,生成新的大图(d:/a/output.png)。
from PIL import Image

# 加载原图
original_image = Image.open('d:/a/input.png')# 替换为你的图片路径

# 获取原图的尺寸
width, height = original_image.size

# 计算新图的尺寸(2倍宽2倍高)
new_width = 2 * width
new_height = 2 * height

# 创建一个新的空白图像,大小和原图的两倍一样大
new_image = Image.new('RGB', (new_width, new_height))

# 将原图粘贴到新图的左上角
new_image.paste(original_image, (0, 0))

# 旋转原图90度并粘贴到新图的右上角
rotated_90 = original_image.rotate(90)
new_image.paste(rotated_90, (width, 0))

# 旋转原图180度并粘贴到新图的右下角
rotated_180 = original_image.rotate(180)
new_image.paste(rotated_180, (width, height))

# 旋转原图270度并粘贴到新图的左下角
rotated_270 = original_image.rotate(270)
new_image.paste(rotated_270, (0, height))

# 保存新图
new_image.save('d:/a/output.png')# 替换为你想要保存新图的路径

xiao31bai 发表于 2024-3-31 10:45

非常感谢楼主开发的工具,试用了下,发现图片文件名不能有中文,并且图片所在路径文件夹也不能有中文。
要是能再加个分割线(边距)就更好了

xiao31bai 发表于 2024-3-31 10:51

楼主要想在优化可以参考这个,在加个边线,间距
https://www.52pojie.cn/forum.php?mod=viewthread&tid=1790427

whglaowang888 发表于 2024-3-31 00:53

地砖拼花?

李亲顾 发表于 2024-3-31 05:27

还是喜欢成品,谢谢分享

songfc666 发表于 2024-3-31 08:57

期待作者的成品

laixingcui 发表于 2024-3-31 09:26

我以为是成品的软件。

zjg121 发表于 2024-3-31 09:37

whglaowang888 发表于 2024-3-31 00:53
地砖拼花?

名称好。谢谢啦!做了一个exe文件。

zjg121 发表于 2024-3-31 09:39

laixingcui 发表于 2024-3-31 09:26
我以为是成品的软件。

慢慢来,慢慢来。成品新鲜出炉。拼接地板砖.exe

zjg121 发表于 2024-3-31 09:40

songfc666 发表于 2024-3-31 08:57
期待作者的成品

大家的期待,是我进步的动力。成品新鲜出炉!
页: [1] 2
查看完整版本: 图片旋转拼接