note 41398 added to function.imagecopyresampled
| From: | jeroen-at-trappers dot be dot tf at rn2 dot php dot net | Date: | Thu, 08 Apr 2004 15:32:12 +0000 |
| Subject: | note 41398 added to function.imagecopyresampled | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-67827@lists.php.net to get a copy of this message | ||
I adapted a function above, so that sqare thumbs would be generated given a certain number. enjoy.
<?php
function image_createSqareThumb($src,$dest,$zijde,$quality=100) {
if (file_exists($src) && isset($dest)) {
// path info
$destInfo = pathInfo($dest);
// image src size
$srcSize = getImageSize($src);
$srcRatio = $srcSize[0]/$srcSize[1]; // width/height ratio
if ($srcRatio >= 1) {
$destSize[1] = $zijde; //smallest side becomes $zijde
$destSize[0] = $zijde*$srcRatio; //other side is enlarged
}
else {
$destSize[0] = $zijde; //smallest side becomse $zijde
$destSize[1] = $zijde/$srcRatio; //other side is enlarged
}
// path rectification
if ($destInfo['extension'] == "gif") {
$dest = substr_replace($dest, 'jpg', -3);
}
// true color image, with anti-aliasing
$destImage = imageCreateTrueColor($zijde,$zijde);
imageAntiAlias($destImage,true);
// src image
switch ($srcSize[2]) {
case 1: //GIF
$srcImage = imageCreateFromGif($src);
break;
case 2: //JPEG
$srcImage = imageCreateFromJpeg($src);
break;
case 3: //PNG
$srcImage = imageCreateFromPng($src);
break;
default:
return false;
break;
}
// resampling
if ($srcRatio >= 1) { //when width>height : cut of piece left and right
imageCopyResampled($destImage, $srcImage, -($destSize[0]-$zijde)/2, 0, 0,
0,$destSize[0],$destSize[1],$srcSize[0],$srcSize[1]);
}
else { //when width<height : cut of a piece on top and bottom
imageCopyResampled($destImage, $srcImage, 0, -($destSize[1]-$zijde)/2, 0,
0,$destSize[0],$destSize[1],$srcSize[0],$srcSize[1]);
}
// generating image
switch ($srcSize[2]) {
case 1:
case 2:
imageJpeg($destImage,$dest,$quality);
break;
case 3:
imagePng($destImage,$dest);
break;
}
return true;
}
else {
return false;
}
}
?>
----
Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php
Edit -- http://master.php.net/manage/user-notes.php?action=edit+41398
Delete -- http://master.php.net/manage/user-notes.php?action=delete+41398&report=yes
Reject -- http://master.php.net/manage/user-notes.php?action=reject+41398&report=yes
Search -- http://master.php.net/manage/user-notes.php