dmitrybezruk
@dmitrybezruk
Предприниматель в строительстве.

Генератор уникальных изображений?

Всем доброго дня!
Подскажите пожалуйста есть ли в природе такие программы/сервисы для пакетного наложения изображений друг на друга по принципу https://ppc-help.ru/generator_phrases
Т.е. мы готовим исходные изображения одного размера, например 900х900рх - 10 картинок основного фона, 10 png картинок с текстом с прозрачным фоном которые надо наложить на основной фон и еще 10 полупрозрачных паттернов которые накладываем поверх всего. Таким образом мы сразу получаем 1000 уникальных вариантов. Можно было бы еще пару переменных добавить, тогда возможных вариантов будет больше.

Есть что то с подобным функционалом?
Или может ктото может помочь с разработкой-хотелось бы иметь 3-5 полей куда бы загружались папки с подготовленными изображениями и кнопкой генерировать-на выходе получаем папку с готовыми перемноженными вариантами.
Буду очень благодарен за обратную связь!
  • Вопрос задан
  • 3574 просмотра
Пригласить эксперта
Ответы на вопрос 3
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Комментировать
rabbit418
@rabbit418
23 yo Designer from Ukraine
Все очень просто. Есть же GD. Все что нам остается это создать 4 папки.

/backgrounds - сюда скидываем фоны
/filters - сюда фильтры
/texts - сюда картинки с текстами
/results - тут будут готовые картинки

И запускам скрипт который я написал ниже.

<?php
$backgrounds = array_diff(scandir('./backgrounds/'), array('.','..','.DS_Store'));
$texts = array_diff(scandir('./texts/'), array('.','..','.DS_Store'));
$filters = array_diff(scandir('./filters/'), array('.','..','.DS_Store'));

function nameGenerator($length) {
    return substr(str_shuffle("_0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
}

// 
foreach ($backgrounds as $background) {
    // 
    foreach ($texts as $text) {
        // 
        foreach ($filters as $filter) {
            // 
            $layer1 = imagecreatefrompng("./backgrounds/{$background}");
            $layer2 = imagecreatefrompng("./texts/{$text}");
            $layer3 = imagecreatefrompng("./filters/{$filter}");

            // 
            imagealphablending($layer1, true);
            imagesavealpha($layer1, true);

            // 
            imagecopy($layer1, $layer2, 0, 0, 0, 0, 900, 900);
            imagecopy($layer1, $layer3, 0, 0, 0, 0, 900, 900);

            // 
            imagejpeg($layer1, "./results/".nameGenerator(10).".jpg");

            // 
            imagedestroy($layer1);
            imagedestroy($layer2);
            imagedestroy($layer3);
        }
    }
}
?>
Ответ написан
ThunderCat
@ThunderCat Куратор тега PHP
{PHP, MySql, HTML, JS, CSS} developer
gd, imagemagick, да даже на канвасе с жс можно решения найти.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 23:00
5000 руб./за проект
19 апр. 2024, в 20:43
20000 руб./за проект