#php #imagemagick #imagick #fractals
#php #imagemagick #imagick #фракталы
Вопрос:
Я хочу иметь возможность повторно использовать случайно сгенерированные фрактальные узоры плазмы / цвета из моего скрипта PHP Imagemagick.
Вот код для фрактала плазмы:
$test = new Imagick();
$test->newPseudoImage(100, 100, 'plasma:fractal');
$img->compositeImage($test, Imagick::COMPOSITE_ATOP, 0, 0);
Проблема с этим кодом в том, что он рандомизируется, и я не могу повторно использовать ранее созданный шаблон.
Эффект, которого я хочу, может быть достигнут путем заполнения. Кто-нибудь знает, как выполнить заполнение фрактала плазмы с помощью PHP Imagemagick? Все, что я смог найти, это код MagickCore для языков более низкого уровня.
Есть ли другие способы, помимо сохранения изображений на сервере, которыми я мог бы повторно использовать случайно сгенерированные фракталы?
Комментарии:
1. Я не знаю, есть ли у Imagick такая функция. Но в ImageMagick ваш случайный шум контролируется с помощью -seed XXX. В Imagick, возможно, вы можете управлять этим с помощью атрибута. Извините, я плохо знаю Imagick. Смотрите imagemagick.org/script/command-line-options.php#seed
2. Смотрите также imagemagick.org/Usage/canvas/#plasma_seeded
3. Попробуйте Imagick::setImageAttribute (‘seed’, ‘100’) и посмотрите, работает ли это. Поместите это сразу после new Imagick();
4. Спасибо. Я попробовал setImageAttribute, он разбил изображение при его использовании после $test = new Imagick(); и перед $test-> newPseudoImage(100, 100, ‘плазма: фрактал’);. Если использовать после $test->newPseudoImage(100, 100, ‘plasma: fractal’);, это не имело никакого эффекта. Я пробовал различные другие вещи, такие как setImageProperty, пока безуспешно. Опубликую, если найду решение.
5. Как насчет setImageArtifact? В противном случае я бы предположил, что Imagick это не реализовал. Начальное значение должно быть установлено перед созданием любого случайного изображения. Если все остальное не удается, используйте PHP exec() с командой командной строки для создания исходного и плазменного изображения.