/** * Run the zoomify converter on the specified file. * * Check to be sure the file hasn't been converted already. * Set the perms appropriately. * * @return void */ public function zoomifyObject($filename, $path) { $converter = new ZoomifyFileProcessor(); $converter->_debug = $this->_debug; $converter->fileMode = $this->fileMode; $converter->dirMode = $this->dirMode; $converter->fileGroup = $this->fileGroup; $trimmedFilename = $this->stripExtension($filename); if (!file_exists($path . $trimmedFilename)) { $file_to_process = $path . $filename; // echo "Processing " . $file_to_process . "...<br />"; $converter->ZoomifyProcess($file_to_process); } else { // echo "Skipping " . $path . $filename . "... (" . $path . $trimmedFilename . " exists)<br />"; } }
$db = get_db(); $sql = " SELECT item_id, filename\n\tFROM {$db->File} files, {$db->Item} items\n\tWHERE files.item_id = items.id "; if ($collection_id != "") { $sql .= " AND items.collection_id = {$collection_id}"; } $file_ids = $db->fetchAll($sql); $originalDir = FILES_DIR . DIRECTORY_SEPARATOR . 'original' . DIRECTORY_SEPARATOR; foreach ($file_ids as $one_id) { $filename = $originalDir . $one_id["filename"]; $computer_size = filesize($filename); $decimals = 2; $sz = 'BKMGTP'; $factor = floor((strlen($computer_size) - 1) / 3); $human_size = sprintf("%.{$decimals}f", $computer_size / pow(1024, $factor)) . @$sz[$factor]; $item_id = $one_id["item_id"]; $fp = new ZoomifyFileProcessor(); list($root, $ext) = $fp->getRootAndDotExtension($filename); $sourcePath = $root . '_zdata'; $destination = str_replace("/original/", "/zoom_tiles/", $sourcePath); if ($computer_size > $max_picture_size) { print "Picture too big, skipped : {$filename} ({$human_size})\n"; } elseif (file_exists($destination)) { print "This picture has already been tiled ({$destination}) : {$human_size} ({$computer_size})\n"; } else { print "En cours : " . $computer_size . "\n"; $fp->ZoomifyProcess($filename); rename($sourcePath, $destination); print "Tiling {$filename} [{$item_id}]\n"; } } exit;