略微加速

PHP官方手册 - 互联网笔记

PHP - Manual: ImagickDraw::setStrokeLineJoin

2024-11-14

ImagickDraw::setStrokeLineJoin

(PECL imagick 2, PECL imagick 3)

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

说明

public ImagickDraw::setStrokeLineJoin(int $linejoin): bool
警告

本函数还未编写文档,仅有参数列表。

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

参数

linejoin

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

返回值

没有返回值。

范例

示例 #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 $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 noteadd a note

User Contributed Notes 2 notes

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

官方地址:https://www.php.net/manual/en/imagickdraw.setstrokelinejoin.php

北京半月雨文化科技有限公司.版权所有 京ICP备12026184号-3