| 
 | 
 
 
 楼主 |
发表于 2025-4-12 21:05:31
|
显示全部楼层
 
 
 
新工作流介绍 
需要的工具: 
1. Tiled 
2. 安装好 PIL 库和 numpy 库的 Python 
流程: 
一、滤镜前铺 Tile 
打开 Tiled,新建图块,图块为素材文件; 
若图块有1px间隙,可以在导入时选择参数; 
新建地图块,开始铺地形; 
铺完后即可导出为图片拿去进行滤镜处理。 
二、滤镜后以格为单位切割 
打开安装好 PIL 库和 numpy 库的 Python,运行下面的代码。 
注意图片与该文件在同一目录下,图片名称改为input.png,运行即可,output.png即为处理完的图片。 
*注:该代码片段由 DeepSeek 完成 
- from PIL import Image
 
 - import numpy as np
 
  
- def add_spacing(image_path, output_path, spacing=32, fill_color=(0, 0, 0, 0)):
 
 -     """
 
 -     给图片横纵每隔spacing像素添加一行/列空白像素
 
 -     :param image_path: 输入图片路径
 
 -     :param output_path: 输出图片路径
 
 -     :param spacing: 间隔像素数(默认32)
 
 -     :param fill_color: 填充颜色(默认透明,RGBA格式)
 
 -     """
 
 -     # 打开原始图片并转为RGBA模式(支持透明度)
 
 -     img = Image.open(image_path).convert('RGBA')
 
 -     width, height = img.size
 
 -     
 
 -     # 将图片转为numpy数组便于操作
 
 -     img_array = np.array(img)
 
 -     
 
 -     # 计算新图片尺寸
 
 -     new_width = width + (width // spacing)
 
 -     new_height = height + (height // spacing)
 
 -     
 
 -     # 创建新图片(全透明背景)
 
 -     new_img = np.zeros((new_height, new_width, 4), dtype=np.uint8)
 
 -     new_img[:, :] = fill_color  # 填充指定颜色
 
 -     
 
 -     # 填充原始像素(跳过间隔位置)
 
 -     new_y = 0
 
 -     for y in range(height):
 
 -         if y > 0 and y % spacing == 0:
 
 -             new_y += 1  # 跳过空白行
 
 -         new_x = 0
 
 -         for x in range(width):
 
 -             if x > 0 and x % spacing == 0:
 
 -                 new_x += 1  # 跳过空白列
 
 -             new_img[new_y, new_x] = img_array[y, x]
 
 -             new_x += 1
 
 -         new_y += 1
 
 -     
 
 -     # 保存结果
 
 -     Image.fromarray(new_img).save(output_path)
 
 -     print(f"处理完成!结果已保存到: {output_path}")
 
  
- # 使用示例
 
 - add_spacing("input.png", "output.png", spacing=32)
 
 
  复制代码 
 
 
 |   
 
 
 
 |