示例#1
0
putenv('LD_LIBRARY_PATH=/petabox/sw/lib/kakadu');
$unzipCmd = 'unzip -p ' . escapeshellarg($zipPath) . ' ' . escapeshellarg($file);
if ('jp2' == $fileExt) {
    $decompressCmd = " | /petabox/sw/bin/kdu_expand -no_seek -quiet -reduce {$powReduce} -i /dev/stdin -o " . $stdoutLink;
    if ($decompressToBmp) {
        $decompressCmd .= ' | bmptopnm ';
    }
} else {
    if ('tif' == $fileExt) {
        // We need to create a temporary file for tifftopnm since it cannot
        // work on a pipe (the file must be seekable).
        // We use the GnuBookTiff prefix to give a hint in case things don't
        // get cleaned up.
        $tempFile = tempnam("/tmp", "GnuBookTiff");
        if (1 != $scale) {
            if (onPowerNode()) {
                $pbmReduce = ' | pnmscale -reduce ' . $scale;
            } else {
                $pbmReduce = ' | pnmscale -nomix -reduce ' . $scale;
            }
        } else {
            $pbmReduce = '';
        }
        $decompressCmd = ' > ' . $tempFile . ' ; tifftopnm ' . $tempFile . ' 2>/dev/null' . $pbmReduce;
    } else {
        GBfatal('Unknown source file extension: ' . $fileExt);
    }
}
// Non-integer scaling is currently disabled on the cluster
// if (isset($_REQUEST['height'])) {
//     $cmd .= " | pnmscale -height {$_REQUEST['height']} ";
示例#2
0
function reduceCommand($scale)
{
    if (1 != $scale) {
        if (onPowerNode()) {
            return ' | pnmscale -reduce ' . $scale;
        } else {
            return ' | pnmscale -nomix -reduce ' . $scale;
        }
    } else {
        return '';
    }
}