Объединение нескольких изображений в одно

Вы наверно сталкивались с показом аватарки группы, состоящей из нескольких аватарок участников. Если пойти по пути создания универсального скрипта, вас будет подстерегать множество "подводных камней", например, изображения могут быть разного размера, разных соотношений сторон, разного фонового цвета. Данный скрипт пытается решить все эти проблемы.

Максимальный размер каждого изображения - 200кб

Чтобы увеличить размер загружаемого файла до 4Mb необходимо войти или зарегистрироваться!


Изображение1:
Изображение2:
Изображение3:
Изображение4:


Поддерживаемые форматы: JPEG, GIF, PNG.

Этот функционал доступен в телеграм боте, - просто отправьте ему файлы с картинками.


<form enctype='multipart/form-data' method='POST'>
    Изображение1: <input type='file' name='p[]' size='45' accept="image/*"><br>
    Изображение2: <input type='file' name='p[]' size='45' accept="image/*"><br>
    Изображение3: <input type='file' name='p[]' size='45' accept="image/*"><br>
    Изображение4: <input type='file' name='p[]' size='45' accept="image/*"><br>
    <input type='submit' value='Создать новое изображение'>
</form>

<?
if(!empty($_FILES['p']['tmp_name'])){
    $width = $height = 512; // размер результата
    $resImage = imagecreatetruecolor($width, $height);
    $f = $_FILES['p']['tmp_name'];
    for ($i = 0; $i < count($f); $i++) {
        $srcImage = imagecreatefromjpeg($f[$i]);
        $srcWidth = imagesx($srcImage);
        $srcHeight = imagesy($srcImage);
        $x = ($i == 1 || $i == 2 ? $width / 2 : 0);
        $y = ($i > 1 ? $height / 2 : 0);
        $h2 = intval($height / 2);
        $w2 = intval($width / 2);
        imagecopyresampled($resImage, $srcImage, $x, $y, 0, 0, $w2, $h2, $srcWidth, $srcHeight);
        imagedestroy($srcImage);
    }
    $filename='tmp.jpg'; // результат
    imagejpeg($resImage, $filename, 100);
    imagedestroy($resImage);
    header('Content-Type: image/jpeg');
    readfile($filename);
}

?>

Приведенный пример максимально упрощен и манипулирует только с 4-мя файлами JPEG - формата.

Смотрите также:

Всего за 599 рублей (~7$) Вы можете приобрести готовый скрипт объединения изображений, который поддерживает весь описанный функционал. Код скрипта реализован на PHP, полностью открытый и не использует никаких дополнительных библиотек.

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

Регистрация Войти Войти через VK Войти через FB Войти через Google Войти через Яндекс

При нажатии кнопки Оплатить и загрузить, Вы подтверждаете согласие с условиями использования скрипта, описанными на этой странице.
Вы будете перенаправлены на страницу выбора способа оплаты, после оплаты 599 рублей (~7$) начнется загрузка файла.
Чтобы мы не потеряли Вашу оплату при потере соединения, укажите Ваш действующий
адрес электронной почты
Сомневаетесь? Вы всегда сможете задать вопросы и получить помощь.


.