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 ที่บ่นว่ามีพื้นที่ไม่เพียงพอบนเส้นทางแคช คุณอาจต้องตรวจสอบ policy.xml
ในเส้นทางการติดตั้ง ImageMagick (บน Windows) เพื่อการพิจารณาของคุณ: รูปภาพขนาด 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 | บูล | เท็จ | - | หากตั้งค่าเป็นจริง - จุดกำเนิดจะถูกตั้งค่าไว้ที่ด้านซ้ายล่าง +y ขึ้นไปตามข้อกำหนดบริการแผนที่ภาคพื้น มิฉะนั้น จุดกำเนิดจะอยู่ที่ด้านซ้ายบน +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 ดูที่ sprintf() |
$fast_resize_upsample | บูล | เท็จ | - | กำหนดว่าจะใช้ Imagick::scaleImage() (จริง) แบบเร็วหรือแบบช้า Imagick::resizeImage() (เท็จ) |
$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 | บูล | เท็จ | - | ไม่ว่าจะสร้างและบันทึกอิมเมจฐานชั่วคราวหรือไม่ (อาจประหยัดทรัพยากร) |