Пример #1
0
 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;
     }
 }