PHP

Превью в виде квадрата (PHP)

Вступление
Создавая галерею изображений на PHP, практически всегда необходимо создавать превью большого изображения. Сделать превью квадратным немного сложнее обычного изменения размеров изображения.

Функция square_previewнаверх
Создадим функцию void square_preview(string $filename, string $size), которая будет создавать квадратные превью из JPEG-изображений Функция будет принимать два параметра: имя файла и размер стороны квадрата.
<?php
/**
 * void square_preview - создание квадратных превью из JPEG-файлов
 *
 * string $file - имя файла оригинального изображения
 * int $size - размер стороны квадрата превью 
 *
 */
function square_preview($file, $size)
{
    // Выставляем заголовок
    header("Content-Type: image/jpg");
    
    // Открываем оригинальное изображение
    $source = imagecreatefromjpeg($file);
    
    // Получаем размеры оригинального изображения
    list($width, $height) = getimagesize($file);
    
    // Превью
    $thumbs = imagecreatetruecolor($size, $size);
    
    // Горизонтальное изображение
    if ($width > $height && $width > $size)
    {
        imagecopyresampled($thumbs, $source, 0, 0, (($width-$height)/2), 0, $size, $size, $height, $height);
    }
    // Вертикальное изображение
    elseif ($height > $width && $height > $size)
    {
        imagecopyresampled($thumbs, $source, 0, 0, 0, (($height-$width)/2), $size, $size, $width, $width);
    }
    // Если квадрат
    elseif ($height == $width && $height > $size)
    {
        imagecopyresampled($thumbs, $source, 0, 0, 0, 0, $size, $size, $width, $width);
    }
    // Изображение меньше размеров стороны
    else
    {
        $thumbs = $source;
    }
    
    // Выводим изображение
    imagejpeg($thumbs);
}
?>
Теги:
Превью
Добавлено: 29 Мая 2018 17:42:59 Добавил: Андрей Ковальчук Нравится 0
Добавить
Комментарии:
Нету комментариев для вывода...