1 | <?php |
---|
2 | //bool file_exists ( string $filename ) |
---|
3 | //take parameters in priority, then, cookie, then ..todo |
---|
4 | |
---|
5 | $missing_size=false; |
---|
6 | $debug=false; |
---|
7 | if (isset($_GET["picture_url"])) { $picture_url = $_GET["picture_url"];} else { die("pictureUrl parameter missing");} |
---|
8 | if (isset($_GET["width"])) { $width = $_GET["width"];} else {$width=0;} |
---|
9 | if (isset($_GET["height"])) { $height = $_GET["height"];} else {$height=0;} |
---|
10 | if (isset($_COOKIE["dynamic_width"])) { $dynamic_width=$_COOKIE["dynamic_width"];} |
---|
11 | if (isset($_COOKIE["dynamic_height"])) { $dynamic_height=$_COOKIE["dynamic_height"];} |
---|
12 | if (isset($_GET["dyn_width"])) {$dynamic_width=($_GET["dyn_width"]);} |
---|
13 | if (isset($_GET["dyn_height"])) {$dynamic_height=($_GET["dyn_height"]);} |
---|
14 | if (!isset($dynamic_width) && !isset($dynamic_height)) $missing_size=true; |
---|
15 | if (isset($_GET["debug"])) $debug=$_GET["debug"]; |
---|
16 | $picture_path='/home/piwigo/webapp/web'.substr($picture_url,1); |
---|
17 | |
---|
18 | if($debug){ |
---|
19 | echo "pictureUrl:".$picture_url."<br/>"; |
---|
20 | echo "width:".$width."<br/>"; |
---|
21 | echo "height:".$height."<br/>"; |
---|
22 | echo "dynamic_width:".$dynamic_width."<br/>"; |
---|
23 | echo "dynamic_heigth:".$dynamic_height."<br/>"; |
---|
24 | echo "picturePath:".$picture_path."<br/>"; |
---|
25 | |
---|
26 | list($usec, $sec) = explode(' ', microtime()); |
---|
27 | $script_start= (float) $sec + (float) $usec; |
---|
28 | } |
---|
29 | if($missing_size){ |
---|
30 | die("pictureUrl parameter missing"); |
---|
31 | //@todo: in a next version ,let it go ? (see test below) |
---|
32 | } |
---|
33 | |
---|
34 | if (extension_loaded('imagick')) { |
---|
35 | $image = new Imagick($picture_path); |
---|
36 | if(! $missing_size){ |
---|
37 | $image->adaptiveResizeImage($dynamic_width,$dynamic_height); |
---|
38 | } |
---|
39 | $image->setCompression(Imagick::COMPRESSION_JPEG); |
---|
40 | $image->setCompressionQuality(80); |
---|
41 | $image->setImageFormat('jpeg'); |
---|
42 | |
---|
43 | $size = $image->getImageLength(); |
---|
44 | }else{ |
---|
45 | //todo echo "Imagick not loaded, please check your server or contact your hosting service"; |
---|
46 | //try alternate method using GD |
---|
47 | } |
---|
48 | |
---|
49 | if(!$debug){ |
---|
50 | header('Content-type: image/jpeg'); |
---|
51 | //header('Content-Length:'.$image->getImageSize()); |
---|
52 | header('Content-Transfer-Encoding :binary'); |
---|
53 | echo $image; |
---|
54 | }else{ |
---|
55 | echo 'imageSize:'.$size.'<br/>'; |
---|
56 | echo 'compression;'.$image->getCompression(); |
---|
57 | echo 'compressionq:'.$image->getCompressionQuality(); |
---|
58 | |
---|
59 | list($usec, $sec) = explode(' ', microtime()); |
---|
60 | $script_end = (float) $sec + (float) $usec; |
---|
61 | $elapsed_time = round($script_end - $script_start, 5); |
---|
62 | if($missing_size){ |
---|
63 | echo "No resize data. Please check that cookie has been set. Image <strong>NOT</strong> resized, computed in ".$elapsed_time." s<br/>"; |
---|
64 | }else{ |
---|
65 | echo "Image resized and computed in ".$elapsed_time." s<br/>"; |
---|
66 | } |
---|
67 | } |
---|
68 | |
---|
69 | ?> |
---|