php imagetiler
3.2.0
Um script para PHP 7.4+ para cortar imagens (mapas) em pedaços (tiles). Baseado no script do mapa lado a lado de Fedik. Este script manterá as proporções da imagem de entrada e gerará apenas os blocos necessários - sem necessidade de arquivos de entrada quadrados!
requer compositor
compositor.json (nota: substitua dev-main
por um limite de versão)
{
"require" : {
"php" : " ^7.4 || ^8.0 " ,
"ext-imagick" : " * " ,
"chillerlan/php-imagetiler" : " dev-main "
}
}
Lucro!
Use o exemplo para testes ao 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/ ' );
É isso!
Se você estiver tendo problemas com o ImageMagick reclamando de espaço insuficiente no caminho do cache, verifique o policy.xml
no caminho de instalação do ImageMagick (no Windows). Para sua consideração: uma imagem de 49152x49152 gerará um arquivo de cache de aproximadamente 28,5 GB,
Imagetiler
método | retornar | descrição |
---|---|---|
__construct(ContainerInterface $options = null, LoggerInterface $logger = null) | - | consulte SettingsContainerInterface e LoggerInterface . Invoca um objeto ImagetilerOptions vazio e um PsrNullLogger se os respectivos parâmetros não estiverem definidos. |
setOptions(ContainerInterface $options) | Imagetiler | definir opções dinamicamente, chamadas internamente pelo construtor |
setOptimizer(Optimizer $optimizer) | Imagetiler | definir uma instância do otimizador dinamicamente, chamada internamente pelo construtor |
process(string $image_path, string $out_path) | Imagetiler | processa a imagem fornecida de $image_path e despeja a saída em $out_path |
ImagetilerOptions
propriedade | tipo | padrão | permitido | descrição |
---|---|---|---|---|
$tile_size | interno | 256 | positivo interno | largura/altura de um único ladrilho |
$zoom_min | interno | 0 | positivo interno | nível mínimo de zoom |
$zoom_max | interno | 8 | positivo interno | nível máximo de zoom |
$zoom_normalize | interno | nulo | positivo interno | este nível de zoom representa o tamanho da imagem original. níveis de zoom superiores a esse serão aumentados, o que pode levar algum tempo e recursos dependendo do tamanho da imagem de entrada. |
$tms | bool | falso | * | se definido como verdadeiro - a origem será definida no canto inferior esquerdo, +y para cima, de acordo com a especificação do serviço Tile Map, caso contrário, a origem estará no canto superior esquerdo, +y para baixo, conforme descrito pela especificação do Google Maps |
$fill_color | corda | '#000000' | * | a cor de preenchimento do espaço restante pode ser transparente para png |
$memory_limit | corda | '-1' | * | veja as configurações do php.ini |
$store_structure | corda | '%1$d/%2$d/%3$d' | * | estrutura de armazenamento - pode ser qualquer coisa. %1$d = zoom, %2$d = x, %3$d = y. veja sprintf() |
$fast_resize_upsample | bool | falso | * | determina se deve usar Imagick::scaleImage() rápido (true) ou Imagick::resizeImage() lento (falso) |
$resize_filter_upsample | interno | Imagick::FILTER_ROBIDOUXSHARP | Imagick::FILTER_* | veja Imagick::resizeImage() e constantes de filtro Imagick |
$resize_blur_upsample | flutuador | 1,0 | flutuação positiva | veja Imagick::resizeImage() |
$fast_resize_downsample | bool | falso | * | veja $fast_resize_upsample |
$resize_filter_downsample | interno | Imagick::FILTER_LANCZOSRADIUS | Imagick::FILTER_* | veja $resize_filter_upsample |
$resize_blur_downsample | flutuador | 1,0 | flutuação positiva | veja $resize_blur_upsample |
$tile_format | corda | 'png' | png, jpg | veja formatos Imagick |
$tile_ext | corda | nulo | * | extensão de imagem de bloco - detectada automaticamente no formato se nenhuma for fornecida. |
$quality_jpeg | interno | 80 | 0-100 | qualidade da imagem salva em formato jpeg |
$imagick_tmp | corda | nulo | * | Pasta tmp do ImageMagick |
$overwrite_base_image | bool | falso | * | |
$overwrite_tile_image | bool | falso | * | |
$clean_up | bool | verdadeiro | * | excluir ou não imagens temporárias |
$optimize_output | bool | falso | * | ativar otimização de imagem (requer instância Optimizer ) |
$no_temp_baseimages | bool | falso | * | se deve ou não criar e salvar imagens de base temporárias (pode economizar recursos) |