2 个版本
0.1.1 | 2024年2月13日 |
---|---|
0.1.0 | 2024年2月10日 |
#43 in #convert-images
15KB
192 代码行
该程序将单个图像转换为多分辨率瓦片格式。
本作品受到了 Pannellum (https://github.com/mpetroff/pannellum) 和 dzi (https://github.com/n-k/dzi) 项目的启发。
通常用于将立方体贴图转换为瓦片。在这种情况下,图像是正方形,但此工具是通用的,可以用于矩形形状的图像。
我选择了一个执行单一操作的工具。因此,它不会操作六个面,也不会为任何全景查看器生成配置文件。为此,您可以使用自己的脚本。在 scripts 目录中提供了一个示例 shell 脚本 cube2tiles.sh
。
我没有找到关于多分辨率瓦片格式的规范。您可以在测试目录中找到 Python 脚本 generate.py
。它来自 Pannellum 项目。这是一个修改后的原始脚本:删除了从等经纬度到立方体贴图的转换。
用法
Generate multires tiles from an image
Usage: image2multires [OPTIONS] [image]
Arguments:
[image]
Options:
-p, --png Set tile image format to png instead of default jpg
-s, --tilesize <tile-size> Set tile image size [default: 512]
-d, --directory <directory> Set output directory of tile image files [default: output]
-h, --help Print help
-V, --version Print version
一般背景或工作流程
我生成全景的工作流程如下:
- 将图像拼接成等经纬度图像;
- 将等经纬度图像转换为6个立方体贴图;
- 对下方的图像进行一些修改,以获得一个没有异物、伪影或空洞的底面;
- 从立方体贴图中生成瓦片。这是此程序运行的地方;
- 删除原始等经纬度图像。
已知问题
可能会出现以下错误:
Unsupported source image: invalid code in LZW stream
这是由底层库引起的。我能提出的唯一解决方案是打开图像并保存它。
依赖关系
~6.5MB
~93K SLoC