php imagetiler
3.2.0
PHP 7.4+ 的脚本,用于将图像(地图)切割成碎片(图块)。基于 Fedik 的地图平铺器脚本。该脚本将保留输入图像的比例并仅生成必要的图块 - 不需要方形输入文件!
需要作曲家
composer.json (注意:用版本边界替换dev-main
)
{
"require" : {
"php" : " ^7.4 || ^8.0 " ,
"ext-imagick" : " * " ,
"chillerlan/php-imagetiler" : " dev-main "
}
}
利润!
使用示例进行实时测试。
// invoke an options instance
$ options = new ImagetilerOptions ([
' zoom_min ' => 0 ,
' zoom_max ' => 8 ,
' zoom_normalize ' => 6 ,
' fill_color ' => ' transparent ' ,
' fast_resize ' => true ,
' optimize_output ' => true ,
// ... whatever you need
]);
// see https://github.com/psliwa/image-optimizer#configuration
$ optimizer = ( new OptimizerFactory ([]))-> get ();
// invoke and run the tiler
$ tiler = new Imagetiler ( $ options , $ optimizer );
$ tiler -> process ( ' /path/to/image.png ' , ' /path/to/output/ ' );
就是这样!
如果您遇到 ImageMagick 抱怨缓存路径上空间不足的问题,您可能需要检查 ImageMagick 安装路径(在 Windows 上)中的policy.xml
。供您考虑:49152x49152 的图像将生成 ~28.5GB 的缓存文件,
Imagetiler
公共方法方法 | 返回 | 描述 |
---|---|---|
__construct(ContainerInterface $options = null, LoggerInterface $logger = null) | - | 请参阅SettingsContainerInterface 和LoggerInterface 。如果未设置相应参数,则调用空ImagetilerOptions 对象和PsrNullLogger 。 |
setOptions(ContainerInterface $options) | Imagetiler | 即时设置选项,由构造函数内部调用 |
setOptimizer(Optimizer $optimizer) | Imagetiler | 动态设置优化器实例,由构造函数内部调用 |
process(string $image_path, string $out_path) | Imagetiler | 处理$image_path 中的给定图像并将输出转储到$out_path |
ImagetilerOptions
属性财产 | 类型 | 默认 | 允许 | 描述 |
---|---|---|---|---|
$tile_size | 整数 | 256 | 正整数 | 单个瓷砖的宽度/高度 |
$zoom_min | 整数 | 0 | 正整数 | 最小缩放级别 |
$zoom_max | 整数 | 8 | 正整数 | 最大缩放级别 |
$zoom_normalize | 整数 | 无效的 | 正整数 | 该缩放级别代表原始图像的大小。高于此的缩放级别将被放大,这可能需要一些时间和资源,具体取决于输入图像的大小。 |
$tms | 布尔值 | 错误的 | * | 如果设置为 true - 根据 Tile 地图服务规范,原点将设置为左下角,+y 向上,否则原点位于左上角,+y 向下,如 Google 地图规范所述 |
$fill_color | 细绳 | “#000000” | * | 剩余空间的填充颜色,对于 png 可以是透明的 |
$memory_limit | 细绳 | ‘-1’ | * | 请参阅 php.ini 设置 |
$store_structure | 细绳 | “%1$d/%2$d/%3$d” | * | 存储结构 - 可以是任何东西。 %1$d = 缩放,%2$d = x,%3$d = y。参见 sprintf() |
$fast_resize_upsample | 布尔值 | 错误的 | * | 确定是使用快速Imagick::scaleImage() (true) 还是慢速Imagick::resizeImage() (false) |
$resize_filter_upsample | 整数 | Imagick::FILTER_ROBIDOUXSHARP | Imagick::FILTER_* | 请参阅Imagick::resizeImage() 和 Imagick 过滤器常量 |
$resize_blur_upsample | 漂浮 | 1.0 | 正浮动 | 参见Imagick::resizeImage() |
$fast_resize_downsample | 布尔值 | 错误的 | * | 参见$fast_resize_upsample |
$resize_filter_downsample | 整数 | Imagick::FILTER_LANCZOSRADIUS | Imagick::FILTER_* | 参见$resize_filter_upsample |
$resize_blur_downsample | 漂浮 | 1.0 | 正浮动 | 参见$resize_blur_upsample |
$tile_format | 细绳 | 'png' | .png、jpg | 请参阅 Imagick 格式 |
$tile_ext | 细绳 | 无效的 | * | 平铺图像扩展名 - 如果没有给出,则从格式中自动检测。 |
$quality_jpeg | 整数 | 80 | 0-100 | 以 jpeg 格式保存的图像的质量 |
$imagick_tmp | 细绳 | 无效的 | * | ImageMagick tmp 文件夹 |
$overwrite_base_image | 布尔值 | 错误的 | * | |
$overwrite_tile_image | 布尔值 | 错误的 | * | |
$clean_up | 布尔值 | 真的 | * | 是否删除临时图像 |
$optimize_output | 布尔值 | 错误的 | * | 启用图像优化(需要Optimizer 实例) |
$no_temp_baseimages | 布尔值 | 错误的 | * | 是否创建并保存临时基础镜像(可以节省资源) |