php imagetiler
3.2.0
Un script para PHP 7.4+ para cortar imágenes (mapas) en pedazos (mosaicos). Basado en el script de mosaico de mapas de Fedik. Este script mantendrá las proporciones de la imagen de entrada y generará solo los mosaicos necesarios, ¡sin necesidad de archivos de entrada cuadrados!
requiere compositor
compositor.json (nota: reemplace dev-main
con un límite de versión)
{
"require" : {
"php" : " ^7.4 || ^8.0 " ,
"ext-imagick" : " * " ,
"chillerlan/php-imagetiler" : " dev-main "
}
}
¡Ganancia!
Utilice el ejemplo para pruebas en vivo.
// 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/ ' );
¡Eso es todo!
Si tiene problemas con ImageMagick quejándose de que no hay suficiente espacio en la ruta del caché, es posible que desee verificar el policy.xml
en la ruta de instalación de ImageMagick (en Windows). Para su consideración: una imagen de 49152x49152 generará un archivo de caché de ~28,5 GB,
Imagetiler
método | devolver | descripción |
---|---|---|
__construct(ContainerInterface $options = null, LoggerInterface $logger = null) | - | consulte SettingsContainerInterface y LoggerInterface . Invoca un objeto ImagetilerOptions vacío y un PsrNullLogger si los parámetros respectivos no están configurados. |
setOptions(ContainerInterface $options) | Imagetiler | establecer opciones sobre la marcha, llamadas internamente por el constructor |
setOptimizer(Optimizer $optimizer) | Imagetiler | establecer una instancia de optimizador sobre la marcha, llamada internamente por el constructor |
process(string $image_path, string $out_path) | Imagetiler | procesa la imagen dada desde $image_path y vuelca la salida a $out_path |
ImagetilerOptions
propiedad | tipo | por defecto | permitido | descripción |
---|---|---|---|---|
$tile_size | entero | 256 | positivo | ancho/alto de un solo mosaico |
$zoom_min | entero | 0 | positivo | nivel mínimo de zoom |
$zoom_max | entero | 8 | positivo | nivel máximo de zoom |
$zoom_normalize | entero | nulo | positivo | este nivel de zoom representa el tamaño de la imagen original. Los niveles de zoom superiores a este se ampliarán, lo que puede llevar algo de tiempo y recursos dependiendo del tamaño de la imagen de entrada. |
$tms | booleano | FALSO | * | si se establece en verdadero, el origen se establecerá en la parte inferior izquierda, +y hacia arriba, de acuerdo con la especificación del servicio Tile Map; de lo contrario, el origen estará en la parte superior izquierda, +y hacia abajo, como se describe en la especificación de Google Maps. |
$fill_color | cadena | '#000000' | * | el color de relleno para el espacio sobrante, puede ser transparente para png |
$memory_limit | cadena | '-1' | * | ver configuración de php.ini |
$store_structure | cadena | '%1$d/%2$d/%3$d' | * | estructura de almacenamiento: puede ser cualquier cosa. %1$d = ampliar, %2$d = x, %3$d = y. ver sprintf() |
$fast_resize_upsample | booleano | FALSO | * | determina si se debe utilizar Imagick::scaleImage() rápido (verdadero) o Imagick::resizeImage() lento (falso) |
$resize_filter_upsample | entero | Imagick::FILTER_ROBIDOUXSHARP | Imagick::FILTER_* | ver Imagick::resizeImage() y constantes de filtro de Imagick |
$resize_blur_upsample | flotar | 1.0 | flotación positiva | ver Imagick::resizeImage() |
$fast_resize_downsample | booleano | FALSO | * | ver $fast_resize_upsample |
$resize_filter_downsample | entero | Imagick::FILTER_LANCZOSRADIUS | Imagick::FILTER_* | ver $resize_filter_upsample |
$resize_blur_downsample | flotar | 1.0 | flotación positiva | ver $resize_blur_upsample |
$tile_format | cadena | 'png' | png, jpg | ver formatos Imagick |
$tile_ext | cadena | nulo | * | extensión de imagen de mosaico: se detecta automáticamente a partir del formato si no se proporciona ninguno. |
$quality_jpeg | entero | 80 | 0-100 | calidad de la imagen guardada en formato jpeg |
$imagick_tmp | cadena | nulo | * | Carpeta tmp de ImageMagick |
$overwrite_base_image | booleano | FALSO | * | |
$overwrite_tile_image | booleano | FALSO | * | |
$clean_up | booleano | verdadero | * | si eliminar o no imágenes temporales |
$optimize_output | booleano | FALSO | * | habilitar la optimización de imágenes (requiere una instancia Optimizer ) |
$no_temp_baseimages | booleano | FALSO | * | si crear y guardar imágenes base temporales o no (puede ahorrar recursos) |