DevConf 2015

ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

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

Description

bool ImagickDraw::setStrokeLineJoin ( int $linejoin )
Warning

This function is currently not documented; only its argument list is available.

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

Parameters

linejoin

LINEJOIN_ constant

Return Values

No value is returned.

Examples

Example #1 ImagickDraw::setStrokeLineJoin()

<?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 $x $offset],
            [
'x' => 20 5'y' => 20 $x $offset],
            [
'x' => 70 5'y' => 50 $x $offset],
            [
'x' => 40 5'y' => 10 $x $offset],
        ];

        
$draw->polyline($points);
    }

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

    
$image->drawImage($draw);

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

?>

add a note add a note

User Contributed Notes 2 notes

up
1
Rex Schrader
6 years ago
From imagick_helpers.c (pecl release), possible values are:
  LINEJOIN_UNDEFINED
  LINEJOIN_MITER
  LINEJOIN_ROUND
  LINEJOIN_BEVEL
up
0
sudopeople gmail
5 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