|

楼主 |
发表于 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)
复制代码
|
|