-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathimg.php
67 lines (58 loc) · 2.24 KB
/
img.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<?php
$w=$_GET['w'];
$h=$_GET['h'];
$filename=$_GET['src'];
function image_fix_orientation($image, $exif) {
if (!empty($exif['Orientation'])) {
switch ($exif['Orientation']) {
case 3: $image = imagerotate($image, 180, 0);
break;
case 6: $image = imagerotate($image, -90, 0);
break;
case 8: $image = imagerotate($image, 90, 0);
break;
}
}
return $image;
}
function file_fix_orientation($filename) {
$exif = exif_read_data($filename);
file_put_contents("exif.data",$exif);
$image = imagecreatefromjpeg($filename);
if (!empty($exif['Orientation'])) {
return image_fix_orientation($image, $exif);
}
return $image;
}
function resize($filename, $cachefilename, $width, $height) {
#print "".pathinfo($file)['extension']."\n";
$sampleMethod=IMG_NEAREST_NEIGHBOUR; # IMG_NEAREST_NEIGHBOUR, IMG_BILINEAR_FIXED, IMG_BICUBIC, IMG_BICUBIC_FIXED
switch(pathinfo($filename)['extension']) {
case "png": imagepng(imagescale(imagecreatefrompng($filename), $width), $cachefilename);
case "gif": imagegif(imagescale(imagecreatefromgif($filename), $width), $cachefilename);
default : {
#$pos= exec("exiftool -c \"%+.6f\" -GPSPosition $filename");// -webkit-transform-origin
#file_put_contents("gps.data",$pos);
$exif = exif_read_data($filename);
$image = imagecreatefromjpeg($filename);
$image= imagescale($image, $width, -1, $sampleMethod);
imagejpeg(image_fix_orientation($image, $exif),$cachefilename, 70);
}
}
}
$width=$w>0?$w:1024;
$height=768;
#print_r("cache/".pathinfo($filename)['basename']);
$cachefilename="cache/".pathinfo($filename)['basename'];
if (!file_exists($cachefilename)) {
#resize($filename, $cachefilename,$width, $height);
$setupExports="export MAGICK_HOME=\"\$HOME/ImageMagick/\" ; export DYLD_LIBRARY_PATH=\"\$MAGICK_HOME/lib/\" ";
exec("$setupExports ; convert \"$filename\" -resize $width"."x$height -quality 75 \"$cachefilename\"");
}
$mimetype= mime_content_type($cachefilename);
ob_start();
header('Content-Type: '.$mimetype);
ob_end_clean();
$fp = fopen($cachefilename, 'rb');
fpassthru($fp);
?>