GoLang ImagickDraw::bezier

request it (276)
GoLang replacement for PHP's ImagickDraw::bezier [edit | history]



Do you know a GoLang replacement for PHP's ImagickDraw::bezier? Write it!

PHP ImagickDraw::bezier

PHP original manual for ImagickDraw::bezier [ show | php.net ]

ImagickDraw::bezier

(PECL imagick 2.0.0)

ImagickDraw::bezierDraws a bezier curve

Description

bool ImagickDraw::bezier ( array $coordinates )
Warning

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

Draws a bezier curve through a set of points on the image.

Parameters

coordinates

Multidimensional array like array( array( 'x' => 1, 'y' => 2 ), array( 'x' => 3, 'y' => 4 ) )

Return Values

No value is returned.

Examples

Example #1 ImagickDraw::bezier()

<?php
function bezier($strokeColor$fillColor$backgroundColor) {

    
$draw = new \ImagickDraw();

    
$strokeColor = new \ImagickPixel($strokeColor);
    
$fillColor = new \ImagickPixel($fillColor);

    
$draw->setStrokeOpacity(1);
    
$draw->setStrokeColor($strokeColor);
    
$draw->setFillColor($fillColor);

    
$draw->setStrokeWidth(2);

    
$smoothPointsSet = [
        [
            [
'x' => 10.0 5'y' => 10.0 5],
            [
'x' => 30.0 5'y' => 90.0 5],
            [
'x' => 25.0 5'y' => 10.0 5],
            [
'x' => 50.0 5'y' => 50.0 5],
        ], 
        [
            [
'x' => 50.0 5'y' => 50.0 5],
            [
'x' => 75.0 5'y' => 90.0 5],
            [
'x' => 70.0 5'y' => 10.0 5],
            [
'x' => 90.0 5'y' => 40.0 5],
        ],
    ];

    foreach (
$smoothPointsSet as $points) {
        
$draw->bezier($points);
    }

    
$disjointPoints = [
        [
            [
'x' => 10 5'y' => 10 5], 
            [
'x' => 30 5'y' => 90 5], 
            [
'x' => 25 5'y' => 10 5],
            [
'x' => 50 5'y' => 50 5],
        ],
        [
            [
'x' => 50 5'y' => 50 5], 
            [
'x' => 80 5'y' => 50 5],
            [
'x' => 70 5'y' => 10 5],
            [
'x' => 90 5'y' => 40 5],
         ]
    ];
    
$draw->translate(0200);

    foreach (
$disjointPoints as $points) {
        
$draw->bezier($points);
    }

    
//Create an image object which the draw commands can be rendered into
    
$imagick = new \Imagick();
    
$imagick->newImage(500500$backgroundColor);
    
$imagick->setImageFormat("png");

    
//Render the draw commands in the ImagickDraw object 
    //into the image.
    
$imagick->drawImage($draw);

    
//Send the image to the browser
    
header("Content-Type: image/png");
    echo 
$imagick->getImageBlob();
}

?>