Наша группа в Telegram для обмена идеями, проектами, мыслями, людьми в сфере ИТ г.Ростова-на-Дону: @it_rostov

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

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

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


Изображение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);
    }
    $fil='tmp.jpg'; // результат
    imagejpeg($resImage, $filename, 100);
    imagedestroy($resImage);
    header('Content-Type: image/jpeg');
    readfile($filename);
}

?>

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

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

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

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

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

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