Lines 23-29
Link Here
|
23 |
* @license GPLv2, see www.gnu.org/licenses/gpl-2.0.html |
23 |
* @license GPLv2, see www.gnu.org/licenses/gpl-2.0.html |
24 |
* @version $Revision: 712 $ |
24 |
* @version $Revision: 712 $ |
25 |
*/ |
25 |
*/ |
26 |
function resize($filename, $new_width = false, $new_height = false, $stretch = false){ |
26 |
function resize($filename, $new_width = false, $new_height = false, $stretch = false, $squish = false){ |
27 |
list($width, $height, $type_int) = getimagesize($filename); |
27 |
list($width, $height, $type_int) = getimagesize($filename); |
28 |
if(!$stretch) { |
28 |
if(!$stretch) { |
29 |
if(!$new_width || !$new_height) { |
29 |
if(!$new_width || !$new_height) { |
Lines 43-78
Link Here
|
43 |
} |
43 |
} |
44 |
} |
44 |
} |
45 |
|
45 |
|
46 |
$new_image = imagecreatetruecolor($new_width, $new_height); |
46 |
if (!$squish) { |
47 |
$image = @imagecreatefromjpeg($filename) or //Read JPEG |
47 |
$new_image = imagecreatetruecolor($new_width, $new_height); |
48 |
$image = @imagecreatefrompng($filename) or //Read PNG |
48 |
$image = @imagecreatefromjpeg($filename) or //Read JPEG |
49 |
$image = @imagecreatefromgif($filename) or //Read GIF |
49 |
$image = @imagecreatefrompng($filename) or //Read PNG |
50 |
$image = false; |
50 |
$image = @imagecreatefromgif($filename) or //Read GIF |
|
|
51 |
$image = false; |
51 |
|
52 |
|
52 |
$type = image_type_to_mime_type($type_int); |
53 |
$type = image_type_to_mime_type($type_int); |
53 |
|
54 |
|
54 |
//If the image is a PNG, make sure the alpha layer is respected! |
55 |
//If the image is a PNG, make sure the alpha layer is respected! |
55 |
if($image && ($type == 'image/png' || $type == 'image/x-png')){ |
56 |
if($image && ($type == 'image/png' || $type == 'image/x-png')){ |
56 |
$alpha = imagecolortransparent($image); |
57 |
$alpha = imagecolortransparent($image); |
57 |
if($alpha >= 0){ |
58 |
if($alpha >= 0){ |
58 |
$color = imagecolorsforindex($image, $alpha); |
59 |
$color = imagecolorsforindex($image, $alpha); |
59 |
$alpha = imagecolorallocate($new_image, $color['red'], $color['green'], $color['blue']); |
60 |
$alpha = imagecolorallocate($new_image, $color['red'], $color['green'], $color['blue']); |
60 |
imagefill($new_image, 0, 0, $alpha); |
61 |
imagefill($new_image, 0, 0, $alpha); |
61 |
imagecolortransparent($new_image, $alpha); |
62 |
imagecolortransparent($new_image, $alpha); |
62 |
} else { |
63 |
} else { |
63 |
imagealphablending($new_image, false); |
64 |
imagealphablending($new_image, false); |
64 |
$color = imagecolorallocatealpha($new_image, 0, 0, 0, 127); |
65 |
$color = imagecolorallocatealpha($new_image, 0, 0, 0, 127); |
65 |
imagefill($new_image, 0, 0, $color); |
66 |
imagefill($new_image, 0, 0, $color); |
66 |
imagesavealpha($new_image, true); |
67 |
imagesavealpha($new_image, true); |
|
|
68 |
} |
69 |
} |
70 |
if($image) { |
71 |
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); |
72 |
imagedestroy($image); |
73 |
} else |
74 |
$new_image = imagecreatetruecolor(3, 3); |
75 |
} else { // pillarbox it |
76 |
$src_image=imagecreatetruecolor($new_width*3/4, $new_height); |
77 |
$src_image = @imagecreatefromjpeg($filename) or //Read JPEG |
78 |
$src_image = @imagecreatefrompng($filename) or //Read PNG |
79 |
$src_image = @imagecreatefromgif($filename) or //Read GIF |
80 |
$src_image = false; |
81 |
$type="image/png"; // force PNG output |
82 |
|
83 |
$new_image=imagecreatetruecolor($new_width, $new_height); |
84 |
imagealphablending($new_image, false); |
85 |
imagesavealpha($new_image, true); |
86 |
imagefill($new_image, 0, 0, imagecolorallocatealpha($new_image, 0, 0, 0, 127)); |
87 |
if ($src_image) { |
88 |
imagecopyresampled($new_image, $src_image, $new_width/8, 0, 0, 0, $new_width*3/4, $new_height, $width, $height); |
67 |
} |
89 |
} |
68 |
|
|
|
69 |
} |
90 |
} |
70 |
|
91 |
|
71 |
if($image) { |
|
|
72 |
imagecopyresampled($new_image, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height); |
73 |
imagedestroy($image); |
74 |
} else |
75 |
$new_image = imagecreatetruecolor(3, 3); |
76 |
|
92 |
|
77 |
|
93 |
|
78 |
if($type == "image/jpeg" || $type == 'image/pjpeg' || $type == 'image/jpg'){ |
94 |
if($type == "image/jpeg" || $type == 'image/pjpeg' || $type == 'image/jpg'){ |