note 98959 added to function.imagecopyresampled
| From: | alaa at eoscars dot net | Date: | Sun, 18 Jul 2010 11:46:44 +0000 |
| Subject: | note 98959 added to function.imagecopyresampled | ||
| Groups: | php.notes | ||
| Request: | Send a blank email to php-notes+get-170951@lists.php.net to get a copy of this message | ||
"z3n666" added a nice function but i had a problem to use ImageCreateFromXXX with a full
path so i changed the function by adding the "@" sign in some places...
function _ckdir($fn) {
if (strpos($fn,"/") !== false) {
$p= substr($fn,0,strrpos($fn,"/"));
if (!is_dir($p)) {
_o("Mkdir: ".$p);
mkdir($p,777,true);
}
}
}
function img_resizer($src,$quality,$w,$h,$saveas) {
/* v2.5 with auto crop */
$r=1;
$e=strtolower(substr($src,strrpos($src,".")+1,3));
if (($e == "jpg") || ($e == "peg")) {
$OldImage= @ImageCreateFromJpeg($src) or $r=0;
} elseif ($e == "gif") {
$OldImage= @ImageCreateFromGif($src) or $r=0;
} elseif ($e == "bmp") {
$OldImage= @ImageCreateFromwbmp($src) or $r=0;
} elseif ($e == "png") {
$OldImage= @ImageCreateFromPng($src) or $r=0;
} else {
_o("Not a Valid Image! (".$e.") -- ".$src);$r=0;
}
if ($r) {
list($width,$height)=getimagesize($src);
// check if ratios match
$_ratio=array($width/$height,$w/$h);
if ($_ratio[0] != $_ratio[1]) { // crop image
// find the right scale to use
$_scale=min((float)($width/$w),(float)($height/$h));
// coords to crop
$cropX=(float)($width-($_scale*$w));
$cropY=(float)($height-($_scale*$h));
// cropped image size
$cropW=(float)($width-$cropX);
$cropH=(float)($height-$cropY);
$crop= @ImageCreateTrueColor($cropW,$cropH);
// crop the middle part of the image to fit proportions
@ImageCopy(
$crop,
$OldImage,
0,
0,
(int)($cropX/2),
(int)($cropY/2),
$cropW,
$cropH
);
}
// do the thumbnail
$NewThumb= @ImageCreateTrueColor($w,$h);
if (isset($crop)) { // been cropped
@ImageCopyResampled(
$NewThumb,
$crop,
0,
0,
0,
0,
$w,
$h,
$cropW,
$cropH
);
@ImageDestroy($crop);
} else { // ratio match, regular resize
@ImageCopyResampled(
$NewThumb,
$OldImage,
0,
0,
0,
0,
$w,
$h,
$width,
$height
);
}
_ckdir($saveas);
@ImageJpeg($NewThumb,$saveas,$quality);
@ImageDestroy($NewThumb);
@ImageDestroy($OldImage);
}
return $r;
}
----
Server IP: 64.71.164.2
Probable Submitter: 82.137.200.5 (proxied: 91.144.60.104)
----
Manual Page -- http://www.php.net/manual/en/function.imagecopyresampled.php
Edit -- https://master.php.net/note/edit/98959
Del: integrated -- https://master.php.net/note/delete/98959/integrated
Del: useless -- https://master.php.net/note/delete/98959/useless
Del: bad code -- https://master.php.net/note/delete/98959/bad+code
Del: spam -- https://master.php.net/note/delete/98959/spam
Del: non-english -- https://master.php.net/note/delete/98959/non-english
Del: in docs -- https://master.php.net/note/delete/98959/in+docs
Del: other reasons-- https://master.php.net/note/delete/98959
Reject -- https://master.php.net/note/reject/98959
Search -- https://master.php.net/manage/user-notes.php