Error: MOSAIC needs at least PHP 4.01. Current PHP version is " . phpversion()); if(!extension_loaded("gd")) die("Error: MOSAIC needs the PHP extension GD-LIB for image rendering. Please contact your hosting provider."); // Output converted image if(isset($_GET["arrow"])) { header("content-type: image/png"); $arrow_forward = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAAH7+Yj7AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAARVSURBVHjaYvj//z8DCNtY2awA4lIQmxFE2Frb/mdABlAV/5F0/GcCil9gQANYtQMEEAOyNhibEcRB0x3BBGVEHz56mBHKXsHEgAWABKcA8VKYZSAdAAEEth0EMFyAABOBCguY0BTB7JuOpDAfJM8CJH6iGwFUnAWkspANYQEKsqNbi80ZyG4MAVKrsZgO9jpAAMEVQhXLAal7oDAHKjDBFubMQPYfbF6GmQgLyD84ggbuXpS4genG4plWJjzWSSIJVTPhshKo+AVSZDOw4HHbdiDlgazwFxCzoQXRQzR9MtiTJBY3MyH7FguAuxMggFBiBsn6aiDVwoAffAGFDNCgL7jSBDO+CCIANgEN9ofHNNCwyVgMmwv1hgMRBvohpwgzIH0SiyJQ5lmGJThuAykVXCaDom87KX4DWqKKZHg+kJqAXiC8ICfQgIaB0lAjNhfqERsZQEMygdQ0PEoewRKiEJDzFj1tAbEGEN8AYgki7HsHDA5h9BJiC5DyJiMEuICGfceZsKGGg8KnDocBN0FKgIa8RpcACCCcBkINLQVS4UBsDMR/gXg9EBcDDXqESw+GgUBDeIDUcyDmIeDNGqDBrXgNBBoGSlP5JIYfqOz/iy0vbwRlITLzMtxQWF4Op8AwlFIfVhavwFYIQguHy0Qm+slgA4GMFgJ5F5STBKCxjA/kYNQ/2GoyNFcEAql1eAw1ZyKxpFkPtWguDiVFTOTEANDQFKjB6MHgysRAGchF4/OQbSAwPIuwFGV3WMgwSB1apGEDi0EufESCYW/xGAYC3SAXWgHxEwIGgZJKIAH7foGyH6zEBtkshG4OEIO8N4dIDwgDDXxHTAOVGDAFaFgucl4GF+NkGrYVZhiuAvY5kZUSCIQCDVtDsAoAGioKpA4AsRYOg1qBBtVgkwAIMLx1ChaLhKAlOijGdUkMmsvQOgnUaXhHrCaCDoS2/CeTEKzEAlA7Ihc9CohyINBRnNBKwY+BPmATqMsHa3sQquXJqZipBcB9RlwNdlD6uo2lgEAHoCK/A9R0g7bSnKjsSJC5qrB0Ciu5pKGdRjYiDEgEal6AFuqg3kgatFsjRAVHgnpsSkB7noKqeGao4+SI1Iy1o4HmYFBx0ovcTyQDgColJVBlUkqC44htAVwDUp5I/Y4caLuanwRjQG4qBTkwlpapHuhYUHT1QTHIwQbQYsuGCO2xLPj6fzRy8AVozQxyLCgZFOFRrsIE7Y/THQAdp0hEG+QLKAT3AXEInRzlAY1eYmNtHws0bYTQyEH80MyRQ2QRhg76QL2o40CDQP2+aio5yh469GBAoVEdILexQBNuDdS3OURoVMTSAa6AJnZOKgU+qIVZia2DHI6t50hnAGo0rMTXWGCGdgj96OwwUIsmCHk0gNCoCjO0p5VGY4fNAuIsdIeR1KKGprMiaLXIQ6GDQOVuNyiHoo+FUtzkx1LQwoaYVLDkWlCNcQeIzwLxSqBj7pNjDwBJPO2OM7QR7gAAAABJRU5ErkJggg=="; $arrow_backward = "iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAAH7+Yj7AAAABGdBTUEAANbY1E9YMgAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAARISURBVHjaYvj//z8DCNtY2awA4lIQmxFE2Frb/mdABlAV/5F0/GcCil9gQANYtQMEEAOyNhibEcRB0x3BBGXMPXz0MCOUvQImmIysFCQ4BcSAWQbSARBAYNuRBbGAiUCFBdidycAgAJT8iCzOAuT8hLKzgJLTcZjKgMvE9UBNQcjiyG4MAVKr0U2CeR0ggOAKoYrlgNQ9UJgDFZhgs5oZyP6DzW0wE2EB+QeXJ2DuxBY3f4GmsKCFbSsLNmuwgGomIhQxILsRbA0Qq+NT+AuJfwNHnMvgihmMIGIi4L4XMDmAAEKJGST3VgOpFgb84AsQSwIN+oIRg1BDmPFFEAGwCWiwPzwUgYZNJtKwyyCvYfG6HyzcQPnADEjn4DEkCGjAemKcCTIUlHK240pi5ACQl1+giTEDbSoi10BQJiAUGe+ALhbGlYvQwCNYQhQCct4S6YgUIL4JSpbYLEYvIbYAKW8yfMoFNOw7zoQNNbwRSNXhMADkQlugIa/RJQACCKeBUENLgVQ4EBuDYh9UWgJxMdCgR3iLWTRDeIDUcyDmIeDNGqDBrXgNBBo2AUjlkxh+LECD/2LLyxtBWYjM5Ac3FJaXwykwDKXUhxWxK4jU6AAtGOZiicDJYAOBjBYiDJoOLWUOQvn7sKgBFzCgQqAaj0F3gIaoEutvUMmFr1QBlcYvSAzLImwGFgANmkhm5LgyYamRJlIQ2zxMWMLhAxCzkWngHSYsgvxA/BNo6HYyDFwMMhBXRveAVv+ZJBjYDTLQioCiaVCD5Qio+wXKfrASG1RaCxHhAlAy0gC1RYBYAk1OGGjgO1gTQ5hIL4EM+YDFsCkgw1CaS6BinMyY3Qo0LBdfAfsciwtwgVCgYWsIVgFAQ0WB1AEg1sJhUCvQoBpsEgABhrdOwWKRELREDwRiXRKD5jK0TpoIC2+iGg6EHAht+U8mIViJBaAUmIseBUQ5EOgoTmil4MdAH7AJ1OWDtT0I1fLkVMzUAuA+I64GOyh93SaygCAFgGrHrVBzK0CNWQLqQelTFZZOYSWXNLTTyEYFB4EMBuXIWcjNHWggJACp+USYAeqxKQH1P2WBdnWOUei4HdAW4zUiLCYGgNxyDOg2JVAND2qeypHooI9A3AQton/RKD2C3FQKcmAskRqOQIuFC3TMNLEgB6oQUNQHdFTxAOVqFSZofxwfCASmBcUBcuAXJhyNZGQActw9aKPmNhB70NGB+0BR3AfEIcQGOajXD3QkLEeCRvCaQGNuNHJgH6wcbCHQoyAGXIC28Q/iqdejgNRSIs3rAJpViVyTTCYwwEIK+A6NmQ7ksSYix6hgLcxcbB3kcBJ6jrQCoEbDSnyNBVDNso6OLRnkFk0QevWIb1QF5NBpQJxGY4fNYoCMX/8lu0UNHWgpglaLPJSWbaAOG7QCIFQGM5DU5EdztCLSEBOo+DHAkqvvAPFZIF4JdMx9cuwBAChjBwRjtG1OAAAAAElFTkSuQmCC"; if($_GET["arrow"] == "backward") echo base64_decode($arrow_backward); else echo base64_decode($arrow_forward); exit(); } // Output mosaic image if(isset($_GET["image"]) && isset($_GET["size"]) && is_file($_GET["image"])) { // Image data $types = array(1 => "gif", "jpeg", "png", "swf", "psd", "wbmp"); $imagedata = getimagesize($_GET["image"]); // If not exists, create cache directory if(!is_dir($cache) && is_readable("./")) mkdir($cache, 0777); // Get thumbfile name for image $thumbfile = substr($_GET["image"], strrpos($_GET["image"], '/') + 1); $thumbfile = substr($thumbfile, 0, strrpos($thumbfile, '.')) . "_" . $_GET["size"] . "." . $types[$imagedata[2]]; // Calculate sizes $imagedata[0] > $imagedata[1] ? $horizontal = true : $vertical = true; $crop_x = 0; $crop_y = 0; // Set mode if(isset($_GET["mode"]) && $_GET["mode"] == "normal") { if(isset($horizontal)) $width = $_GET["size"]; else $height = $_GET["size"]; if(!isset($width)) $width = floor($height * $imagedata[0] / $imagedata[1]); if(!isset($height)) $height = floor($width* $imagedata[1] / $imagedata[0]); $source_width = $imagedata[0]; $source_height = $imagedata[1]; } else { $width = $_GET["size"]; $height = $_GET["size"]; if(isset($horizontal)) { $source_width = $imagedata[1]; $source_height = $imagedata[1]; $crop_x = ($imagedata[0] - $source_width) / 2; } else { $source_width = $imagedata[0]; $source_height = $imagedata[0]; $crop_y = ($imagedata[1] - $source_height) / 2; } } // Output image header("content-type: image/" . $types[$imagedata[2]]); if(!file_exists($cache . $thumbfile)) { $original_image = call_user_func("imagecreatefrom" . $types[$imagedata[2]], $_GET["image"]); $new_image = imagecreatetruecolor($width, $height); imagecopyresampled($new_image, $original_image, 0, 0, $crop_x, $crop_y, $width, $height, $source_width, $source_height); if($types[$imagedata[2]] != "jpeg") $thumbnail_quality = ""; call_user_func("image" . $types[$imagedata[2]], $new_image, $cache . $thumbfile, $thumbnail_quality); call_user_func("image" . $types[$imagedata[2]], $new_image, false, $thumbnail_quality); imagedestroy($original_image); imagedestroy($new_image); } else readfile($cache . $thumbfile); exit(); } // Output popup if(isset($_GET["src"])) { $relative_path = basename($_GET["src"]); if(!file_exists($relative_path)) header("location: index.php"); // Get image data $imagedata = getimagesize($relative_path); $filesize = round(filesize($relative_path)); switch(strlen($filesize)) { case (strlen($filesize) > 4 && strlen($filesize) < 7) : $filesize = round($filesize / 1000) . " kB"; break; case (strlen($filesize) >= 7) : $filesize = round($filesize / 1000000, 2) . " MB"; break; default : $filesize = $filesize . " Byte"; } // Output HTML content header('content-type: text/html; charset=utf-8'); echo '