public static function cropPictureAndResize($inputPicture, $outputPicture, $targetWidth, $targetHeight, $overlay = '', $quality = 90) { list($widthOrig, $heightOrig, $imageType) = getimagesize($inputPicture); $XRatio = $widthOrig / $targetWidth; $YRatio = $heightOrig / $targetHeight; switch ($imageType) { case IMAGETYPE_JPEG: $image = imagecreatefromjpeg($inputPicture); break; case IMAGETYPE_GIF: $image = imagecreatefromgif($inputPicture); break; case IMAGETYPE_PNG: $image = imagecreatefrompng($inputPicture); $quality = 9; break; default: $this->log(WOOOF_loggingLevels::WOOOF_ERROR, self::_ECP . "0260 " . 'Input picture is not a valid picture or is a non supported file. Only JPG, GIF and PNG are supported.'); return FALSE; break; } if ($XRatio < $YRatio) { $ratioDiff = round($XRatio * $targetHeight); $pixelDiff = $heightOrig - $ratioDiff; $image_t = imagecreatetruecolor($widthOrig, $ratioDiff); imagecopy($image_t, $image, 0, 0, 0, round($pixelDiff / 2), $widthOrig, $heightOrig - round($pixelDiff / 2)); } else { $ratioDiff = round($YRatio * $targetWidth); $pixelDiff = $widthOrig - $ratioDiff; $image_t = imagecreatetruecolor($ratioDiff, $heightOrig); imagecopy($image_t, $image, 0, 0, round($pixelDiff / 2), 0, $widthOrig - round($pixelDiff / 2), $heightOrig); } $result = imagejpeg($image_t, $outputPicture . 'interim.jpg', 100); if ($result === TRUE) { if ($overlay != '') { $result = WOOOF::resizePictureStrictWithOverlay($outputPicture . 'interim.jpg', $outputPicture, $targetWidth, $targetHeight, $overlay, $quality); } else { $result = WOOOF::resizePicture($outputPicture . 'interim.jpg', $outputPicture, $targetWidth, $targetHeight, $quality); } unlink($outputPicture . 'interim.jpg'); return $result; } else { return FALSE; } }