public static function createThumbnail($imagePath, $thumbPath, $thumbWidth, $thumbHeight)
 {
     if (file_exists($imagePath)) {
         $imageInfo = getimagesize($imagePath);
         $canMakeThumb = function_exists('imagejpeg') && ($imageInfo[2] == IMAGETYPE_GIF && function_exists('imagecreatefromgif') || $imageInfo[2] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg') || $imageInfo[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng'));
         if ($canMakeThumb) {
             if ($thumbWidth && !$thumbHeight) {
                 $thumbHeight = $thumbWidth / $imageInfo[0] * $imageInfo[1];
             } elseif (!$thumbWidth && $thumbHeight) {
                 $thumbWidth = $thumbHeight / $imageInfo[1] * $imageInfo[0];
             }
             $imageThumb = BertaUtils::smart_resize_image($imagePath, $thumbWidth, $thumbHeight, false, 'return', false);
             if ($imageThumb) {
                 switch ($imageInfo[2]) {
                     case IMAGETYPE_GIF:
                         imagegif($imageThumb, $thumbPath);
                         break;
                     case IMAGETYPE_JPEG:
                         imagejpeg($imageThumb, $thumbPath, 90);
                         break;
                     case IMAGETYPE_PNG:
                         imagepng($imageThumb, $thumbPath);
                         break;
                     default:
                         return false;
                 }
                 if (file_exists($thumbPath)) {
                     chmod($thumbPath, 0666);
                 }
                 return true;
             }
         }
     }
     return false;
 }
 public static function createThumbnail($imagePath, $thumbPath, $thumbWidth, $thumbHeight)
 {
     if (is_file($imagePath)) {
         $imageInfo = getimagesize($imagePath);
         $canMakeThumb = function_exists('imagejpeg') && ($imageInfo[2] == IMAGETYPE_GIF && function_exists('imagecreatefromgif') || $imageInfo[2] == IMAGETYPE_JPEG && function_exists('imagecreatefromjpeg') || $imageInfo[2] == IMAGETYPE_PNG && function_exists('imagecreatefrompng'));
         if ($canMakeThumb) {
             if ($thumbWidth && !$thumbHeight) {
                 $thumbHeight = $thumbWidth / $imageInfo[0] * $imageInfo[1];
             } elseif (!$thumbWidth && $thumbHeight) {
                 $thumbWidth = $thumbHeight / $imageInfo[1] * $imageInfo[0];
             }
             $imageThumb = BertaUtils::smart_resize_image($imagePath, $thumbWidth, $thumbHeight, false, 'return', false);
             if ($imageThumb) {
                 switch ($imageInfo[2]) {
                     case IMAGETYPE_GIF:
                         //solution for animated gif
                         if (0 && self::$options['HOSTING_PROFILE'] && $imageInfo[2] == IMAGETYPE_GIF) {
                             $file_path = realpath($imagePath);
                             $file_info = pathinfo($file_path);
                             $thumb_info = pathinfo($thumbPath);
                             $thumbPath = $file_info['dirname'] . '/' . $thumb_info['basename'];
                             $command = "/usr/bin/convert {$file_path} -coalesce -bordercolor LightSteelBlue -border 0 -resize {$thumbWidth}x{$thumbHeight} -layers Optimize {$thumbPath}";
                             exec($command);
                         } elseif (extension_loaded('imagick') && $imageInfo[2] == IMAGETYPE_GIF) {
                             $animation = new Imagick($imagePath);
                             $animation = $animation->coalesceImages();
                             foreach ($animation as $frame) {
                                 $frame->thumbnailImage($thumbWidth, $thumbHeight);
                                 $frame->setImagePage($thumbWidth, $thumbHeight, 0, 0);
                             }
                             $animation = $animation->deconstructImages();
                             $animation->writeImages($thumbPath, true);
                         } else {
                             imagegif($imageThumb, $thumbPath);
                         }
                         break;
                     case IMAGETYPE_JPEG:
                         imagejpeg($imageThumb, $thumbPath, 97);
                         break;
                     case IMAGETYPE_PNG:
                         imagepng($imageThumb, $thumbPath);
                         break;
                     default:
                         return false;
                 }
                 if (file_exists($thumbPath)) {
                     @chmod($thumbPath, 0666);
                 }
                 return true;
             }
         }
     }
     return false;
 }