Как сделать если изображение меньше 700px то не ресайзим?

238
20 декабря 2017, 23:13

делаю функцию ресайза изображения для парсера из ютуба , оригинальные изображения слишком большие в maxresdefault но качественные .Как сделать если изображение меньше 700px то не ресайзим? вот сама функция

   # Функция для загрузки и ресайза изображений
function youtube_thumb($thumb, $youtube_thumb, $preview_path, $original_path, $size )
{
    /*
     * $thumb - новое имя на изображение 
     * $youtube_thumb - ссылка на изображение 
     * $preview_path - папка, куда сохраняем превьюшки
     * $original_path - папка, куда сохраняем оригинал
     * $size - размер большей стороны (в пикселях)
    */
    # Получаем изображение. Если функция не отработала
    if( $image = file_get_contents( $youtube_thumb ) )
    {
        # Сохраняем изображение            
        file_put_contents( $thumb, $image );
        # Очищаем память
        unset( $image );
        # Если getimagesize вернула массив
        if( $info = getimagesize( $thumb ) )
        {
            # Вычисляем тип изображения
            $type = trim( strrchr( $info['mime'], '/' ), '/' );
            # Исходя из типа формируем названия функций
            $imagecreate = 'imagecreatefrom' . $type;
            $imagesave = 'image' . $type;
            $imagename = $thumb;
            # Получаем данные об изображении
            list( $width, $height ) = $info;
            # Создаём ресурс изображения
            $src_im = $imagecreate( $thumb );
            # Вычисляем ширину
            $new_width = $width > $height ? $size : ceil( ( $width * $size ) / $height );
            # Вычисляем высоту
            $new_height = $width < $height ? $size : ceil( ( $height * $size ) / $width );
            # Создаём новое изображение
            $dst_im = imagecreatetruecolor( $new_width, $new_height );
            # Ресайзим
            imagecopyresampled( $dst_im, $src_im, 0, 0, 0, 0, $new_width, $new_height, $width, $height );
            # Чистим память
            unset( $src_im );
            # Сохраняем оригинал
            if( !copy( $youtube_thumb, $original_path . $imagename ) ) $return = false;                
            # Сохраняем превьюшку
            if( !$imagesave( $dst_im, $preview_path . $imagename ) ) $return = false;
            # Очищаем память
            unset( $dst_im );
            unlink( $thumb );
        }
    }
}
Answer 1

Кажется вот так работает `

        #если изображение меньше $size то не ресайзим
        if($width <= $size) {$new_width = $width; $new_height = $height;}
        # Создаём новое изображение`
READ ALSO
Отправка headers AngularJS [требует правки]

Отправка headers AngularJS [требует правки]

Когда я пытаюсь отправить токен в headers возникает ошибка:

198
Не могу понять ошибку в коде

Не могу понять ошибку в коде

Здравствуйте, Помогите, пожалуйста, понять, что не так в коде:

217
Вывод категорий и подкатегорий

Вывод категорий и подкатегорий

Правильно ли я сделал вывод?

155
Сабмит формы без потери данных в инпуте

Сабмит формы без потери данных в инпуте

Дорогие друзья, вопрос будет звучать довольно странно , но всё же это нужно

215