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.5 GB のキャッシュ ファイルを生成します。
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 上に設定されます。それ以外の場合、原点は Google マップ仕様で説明されているように、左上、+y 下に設定されます。 |
$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 | ブール | 間違い | * | 一時的なベースイメージを作成して保存するかどうか (リソースを節約できる可能性があります) |