Как я могу динамически генерировать изображение с альфа-градиентом? - PullRequest
0 голосов
/ 23 февраля 2011

Я ищу способ динамически создать эллипс с заостренным краем (и иметь возможность контролировать степень растушевки). В идеале это может быть достигнуто с помощью Javascript, так как предполагаемое использование находится в приложении, которое может быть сделано доступным в автономном режиме, но для простоты я был бы доволен решением PHP в то же время.

Я пытался найти решение с использованием GD, однако я нашел его довольно ограниченным при работе с альфа-версией. Основные проблемы заключались в том, что использование заполненного эллипса и наслоения отменяет эффект прозрачности, а простое рисование границы с постепенно уменьшающимися эллипсами вызывает проблемы, когда эллипсы не идеально выровнены (см. Изображение ниже).

Example

Есть ли решение, которое я могу использовать, чтобы устранить эти проблемы, не становясь слишком сложным? Я знаю, что могу создать изображение попиксельно, но это кажется очень сложным методом для относительно простой задачи.

Ответы [ 2 ]

2 голосов
/ 23 февраля 2011

Вот пример использования тега, который выглядит так, как будто он может направить вас по правильному пути:

http://nixtu.blogspot.com/2010/07/html5-canvas-gradients-radial-gradient.html

А вот скрипка, которая показывает, что, я думаю, вы можете искать:

http://jsfiddle.net/hgZt7/2/

1 голос
/ 23 февраля 2011

ImageMagick - это самый простой способ выполнить вашу задачу.Полный список функций: http://us3.php.net/manual/en/book.imagick.php

Для создания альфа-канала: http://us3.php.net/manual/en/function.imagick-getimagealphachannel.php

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...