ImagickDraw::setStrokeLineJoin

(PECL imagick 2.0.0)

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

설명

bool ImagickDraw::setStrokeLineJoin ( int $linejoin )
Warning

이 함수는 현재 문서화 되어있지 않습니다; 인수 목록만을 제공합니다.

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

인수

linejoin

LINEJOIN_ constant

반환값

값을 반환하지 않습니다.

예제

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