
Градиентный фон на PHP

Градиентный фон на PHP
Продолжаем работать с графикой на PHP. Сегодня будем рисовать градиентную заливку фона, когда один цвет плавно перетекает в другой.
Для горизонтального градиента у меня получился следующий скрипт. Размеры фона, а также начальные и конечные цвета задаются в первых строчках.
Code (PHP) : Убрать нумерацию
- // Размеры изображения
- $width=600;
- $height=225;
- // Начальный цвет градиента
- $start_color=0x55FFFF;
- // Конечный цвет градиента
- $end_color=0xFF0000;
- $R1=($start_color >> 16) & 0xFF;
- $G1=($start_color >> 8) & 0xFF;
- $B1=$start_color & 0xFF;
- $R2=($end_color >> 16) & 0xFF;
- $G2=($end_color >> 8) & 0xFF;
- $B2=$end_color & 0xFF;
- $im=ImageCreateTrueColor($width, $height);
- // Нарисовать горизонтальный градиент
- for ($x=0; $x<$width; $x++) {
- $R=$R1-round(($R1-$R2)/$width*$x);
- $G=$G1-round(($G1-$G2)/$width*$x);
- $B=$B1-round(($B1-$B2)/$width*$x);
- $color=ImageColorAllocate($im,$R,$G,$B);
- ImageLine($im,$x,0,$x,$height,$color);
- }
Code (PHP) : Убрать нумерацию
- // Нарисовать вертикальный градиент
- for ($y=0; $y<$height; $y++) {
- $R=$R1-round(($R1-$R2)/$height*$y);
- $G=$G1-round(($G1-$G2)/$height*$y);
- $B=$B1-round(($B1-$B2)/$height*$y);
- $color=ImageColorAllocate($im,$R,$G,$B);
- ImageLine($im,0,$y,$width,$y,$color);
- }

Градиентный фон на PHP
Более сложный градиент можно получить, если цвет пересчитывается динамически для каждой точки. Времени на это потребуется больше, чем на рисование отдельных линий, но и результат выглядит гораздо лучше.
Code (PHP) : Убрать нумерацию
- $width=600;
- $height=450;
- $im=ImageCreateTrueColor($width, $height);
- for ($x=0; $x<$width; $x++) {
- for ($y=0; $y<$height; $y++) {
- $gradient=ImageColorAllocate($im,
- (255/$width)*$x,
- (255/$height)*$y,
- 255
- );
- ImageSetPixel($im,$x,$y,$gradient);
- }
- }
Просмотров: 2124 | Комментариев: 1

Внимание! Статья опубликована больше года назад, информация могла устареть!
Комментарии
Отзывы посетителей сайта о статье
ManHunter
(19.07.2023 в 14:13):
Добавил комплексный градиент.

Добавить комментарий
Заполните форму для добавления комментария
