| 
<?php
###############################################################################
 #
 #   Script Name: cli.splitter.php
 #   Description: split large pictures into small pieces
 #   Copyright (C) 2007 Jiang Kuan
 #
 #   Usage: php -q ./cli.splitter.php [source image] [target folder]
 #       [source image] -- image to be splitted
 #       [target folder] -- path where you wish to store the splitted files
 #
 #   This program is free software: you can redistribute it and/or modify
 #   it under the terms of the GNU General Public License as published by
 #   the Free Software Foundation, either version 3 of the License, or
 #   (at your option) any later version.
 #
 #   This program is distributed in the hope that it will be useful,
 #   but WITHOUT ANY WARRANTY; without even the implied warranty of
 #   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 #   GNU General Public License for more details.
 #
 #   You should have received a copy of the GNU General Public License
 #   along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #
 ###############################################################################
 
 
 require_once(dirname(dirname(__FILE__)).'/class/class.imagesplitter.php');
 $usage = 'Usage: php -q ./cli.splitter.php [source image] [target folder]
 [source image] -- image to be splitted
 [target folder] -- path where you wish to store the splitted files
 ';
 if (count($argv)==1) exit($usage);
 if(!is_file($argv[1])) exit("Invalide source file!\n$usage");
 if(!is_dir($argv[2])) exit("Invalide output directory does not exist!\n$usage");
 
 $path = $argv[2];
 
 $res = imagecreatefromstring(file_get_contents($argv[1]));
 $w = imagesx($res);
 $h = imagesy($res);
 $max_zoom = ceil(log10(max($w, $h)/256)/log10(2));
 
 echo "\nThe image size is $w x $h, and Maximum Zoom level should be set to $max_zoom\n\nWell, now let's start to generating cache for \"{$argv[1]}\". Please wait for a while";
 
 for($i=$max_zoom; $i>=0; $i--){
 echo '.';
 $splitter = new ImageSplitter;
 if($i==0) $splitter->centerMode = IMAGE_SPLITTER_CENTER_NORMAL;
 $splitter->outputType = IMAGETYPE_JPEG;
 $splitter->ratio = pow(0.5,  $max_zoom-$i);
 $splitter->Load($res);
 $splitter->GetAllTiles($path, "tile$i-", '.jpg');
 }
 
 echo "\n\nAll image pieces are successfully generated!\n";
 imagedestroy($res);
 ?>
 |