PHP Conference Nagoya 2025

ImagickDraw::setStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

ImagickDraw::setStrokeLineJoinSpecifies the shape to be used at the corners of paths when they are stroked

Descrizione

public ImagickDraw::setStrokeLineJoin(int $linejoin): bool
Avviso

Questa funzione, al momento non è documentata; è disponibile soltanto la lista degli argomenti.

Specifies the shape to be used at the corners of paths (or other vector shapes) when they are stroked.

Elenco dei parametri

linejoin

One of the LINEJOIN constant (imagick::LINEJOIN_*).

Valori restituiti

Nessun valore viene restituito.

Esempi

Example #1 ImagickDraw::setStrokeLineJoin() example

<?php
function setStrokeLineJoin($strokeColor, $fillColor, $backgroundColor) {

$draw = new \ImagickDraw();
$draw->setStrokeWidth(1);
$draw->setStrokeColor($strokeColor);
$draw->setFillColor($fillColor);

$draw->setStrokeWidth(20);

$offset = 220;

$lineJoinStyle = [
\Imagick::LINEJOIN_MITER,
\Imagick::LINEJOIN_ROUND,
\Imagick::LINEJOIN_BEVEL,
];

for (
$x = 0; $x < count($lineJoinStyle); $x++) {
$draw->setStrokeLineJoin($lineJoinStyle[$x]);
$points = [
[
'x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
[
'x' => 20 * 5, 'y' => 20 * 5 + $x * $offset],
[
'x' => 70 * 5, 'y' => 50 * 5 + $x * $offset],
[
'x' => 40 * 5, 'y' => 10 * 5 + $x * $offset],
];

$draw->polyline($points);
}

$image = new \Imagick();
$image->newImage(500, 700, $backgroundColor);
$image->setImageFormat("png");

$image->drawImage($draw);

header("Content-Type: image/png");
echo
$image->getImageBlob();
}

?>

add a note

User Contributed Notes 2 notes

up
1
Rex Schrader
15 years ago
From imagick_helpers.c (pecl release), possible values are:
LINEJOIN_UNDEFINED
LINEJOIN_MITER
LINEJOIN_ROUND
LINEJOIN_BEVEL
up
0
sudopeople gmail
15 years ago
For many (myself included) Rex's note maybe not be blatant enough. The constants are declared for the Imagick class only, so using them requires this syntax: Imagick::LINEJOIN_ constant

Here's an example oh how you might use it:

<?php
$img
= new Imagick();
$img->newImage($width, $height, new ImagickPixel('transparent'));
$draw = new ImagickDraw();
$draw->setStrokeLineJoin(Imagick::LINEJOIN_ROUND);
?>

If you're not drawing polylines and are drawing simple lines, also see setStrokeLineCap
To Top