Заполнение / повторное использование Imagemagick PHP Plasma?

#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() с командой командной строки для создания исходного и плазменного изображения.