PHPerKaigi 2025

imagesetbrush

(PHP 4 >= 4.0.6, PHP 5, PHP 7, PHP 8)

imagesetbrush Устанавливает изображение кисти для рисования линий

Описание

imagesetbrush(GdImage $image, GdImage $brush): bool

Функция imagesetbrush() устанавливает изображение кисти, которое будут использовать функции рисования линий наподобие imageline() и imagepolygon() при рисовании специальными цветами IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED.

Предостережение

Дополнительных действий после завершения работы с кистью не требуется, однако если изображение кисти уничтожено, нельзя пользоваться цветами IMG_COLOR_BRUSHED или IMG_COLOR_STYLEDBRUSHED, пока не установится новое изображение кисти!

Список параметров

image

Объект GdImage, который возвращает одна из функций, создающих изображения, например, imagecreatetruecolor().

brush

Объект изображения.

Возвращаемые значения

Функция возвращает true, если выполнилась успешно, или false, если возникла ошибка.

Список изменений

Версия Описание
8.0.0 Параметры image и brush теперь ожидают экземпляр класса GdImage; раньше ожидался ресурс (resource).

Примеры

Пример #1 Пример установки изображения кисти функцией imagesetbrush()

<?php

// Загрузка минилоготипа php
$php = imagecreatefrompng('./php.png');

// Создание основного изображения размером 100x100
$im = imagecreatetruecolor(100, 100);

// Заливка фона белым цветом
$white = imagecolorallocate($im, 255, 255, 255);
imagefilledrectangle($im, 0, 0, 299, 99, $white);

// Установка кисти
imagesetbrush($im, $php);

// Рисование линии из изображений кисти
imageline($im, 50, 50, 50, 60, IMG_COLOR_BRUSHED);

// Вывод изображения
header('Content-type: image/png');

imagepng($im);

?>

Вывод приведённого примера будет похож на:

Вывод примера: imagesetbrush()

Добавить

Примечания пользователей 1 note

up
0
brent at ebrent dot net
18 years ago
Use a brush to create a thick line.

To create a 3x3 red brush:

<?php
$brush_size
= 3;
$brush = imagecreatetruecolor($brush_size,$brush_size);
$brush_color = imagecolorallocate($brush,255,0,0);
imagefill($brush,0,0,$brush_color);
imagesetbrush($im,$brush);
?>

Then use imageline() or imagepolygon() with IMG_COLOR_BRUSHED as the color.

To stop using the brush, destroy it:

<?php imagedestroy($brush); ?>

The brush can also be created from an existing image.
To Top