private function resizeCropImage($destSrc, $imgSrc, $destX, $destY, $srcX, $srcY, $destW, $destH, $srcW, $srcH)
{
$type = strtolower(pathinfo($imgSrc, PATHINFO_EXTENSION));
switch ($type) {
case 'jpg':
case 'jpeg':
$srcFunc = 'imagecreatefromjpeg';
$writeFunc = 'imagejpeg';
$imageQuality = 100;
break;
case 'gif':
$srcFunc = 'imagecreatefromgif';
$writeFunc = 'imagegif';
$imageQuality = null;
break;
case 'png':
$srcFunc = 'imagecreatefrompng';
$writeFunc = 'imagepng';
$imageQuality = 9;
break;
default:
return false;
}
$imgR = $srcFunc($imgSrc);
if (round($srcW / $srcH, 2) != round($destW / $destH, 2)) {
$destW = $srcW;
$destH = $srcH;
}
$dstR = imagecreatetruecolor($destW, $destH);
if ($type == 'png') {
imagealphablending($dstR, false);
imagesavealpha($dstR, true);
}
imagecopyresampled($dstR, $imgR, $destX, $destY, $srcX, $srcY, $destW, $destH, $srcW, $srcH);
switch ($type) {
case 'gif':
case 'png':
imagecolortransparent($dstR, imagecolorallocate($dstR, 0, 0, 0));
case 'png':
imagealphablending($dstR, false);
imagesavealpha($dstR, true);
break;
}
$writeFunc($dstR, $destSrc, $imageQuality);
}