php imagetiler
3.2.0
Скрипт для PHP 7.4+ для разрезания изображений (карт) на части (тайлы). На основе скрипта тайлера карты Федика. Этот скрипт сохранит пропорции входного изображения и создаст только необходимые плитки — квадратные входные файлы не нужны!
требуется композитор
композитор.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, жалующимся на нехватку места в пути к кешу, вы можете проверить файл policy.xml
в пути установки ImageMagick (в Windows). На ваше рассмотрение: изображение размером 49152x49152 создаст файл кэша размером ~ 28,5 ГБ,
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, начало координат будет установлено в левом нижнем углу, +y вверх, в соответствии со спецификацией службы Tile Map, в противном случае начало координат будет в верхнем левом углу, +y вниз, как описано в спецификации Google Maps. |
$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. см. спринтф() |
$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, 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 | логическое значение | ЛОЖЬ | * | следует ли создавать и сохранять временные базовые изображения (может сэкономить ресурсы) |