|
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'){ |