Open In App

PHP | ImagickDraw scale() Function

Last Updated : 15 Jul, 2021
Comments
Improve
Suggest changes
Like Article
Like
Report

The ImagickDraw::scale() function is an inbuilt function in PHP which is used to adjust the scaling factor to apply in the horizontal and vertical directions to the current coordinate space.

Syntax: 

bool ImagickDraw::scale( $x, $y )

Parameters: This function accepts two parameter as mentioned above and described below:  

  • $x: This parameter is used to hold the value of horizontal factor.
  • $y: This parameter is used to hold the value of vertical factor.

Return Value: This function returns True on success.
Below programs illustrate the ImagickDraw::scale() function in PHP:

Program 1:  

PHP
<?php

// require_once('path/vendor/autoload.php');

// Create an ImagickDraw object

$draw = new \ImagickDraw();

// Set the Stroke Color 
$draw->setStrokeColor('Green');

// Set the Fill Color
$draw->setFillColor('Red');

// Set the stroke width
$draw->setStrokeWidth(7);

// Draw the rectangle
$draw->rectangle(40, 30, 200, 260);

// Set the scale
$draw->scale(1.4, 1.4);

// Set the fill color
$draw->setFillColor('lightgreen');

// Draw the rectangle
$draw->rectangle(40, 30, 200, 260);

// Create an Imagick object 
$image = new \Imagick();

// Set the image dimensions
$image->newImage(800, 400, 'White');

// Set the image format
$image->setImageFormat("png");

// Draw the image
$image->drawImage($draw);
header("Content-Type: image/png");

// Display the image 
echo $image->getImageBlob();
?>

Output: 

Program 2:  

PHP
<?php

// require_once('path/vendor/autoload.php');

// Create an Imagick Draw object
$draw = new \ImagickDraw();

// Set the stroke color
$strokeColor = new \ImagickPixel('Green');

// Set the fill color
$fillColor = new \ImagickPixel('Red');

// Set the stroke opacity
$draw->setStrokeOpacity(1);

// Set the stroke color
$draw->setStrokeColor('Green');

// Set the Fill Color
$draw->setFillColor('Red');

// Set the stroke width
$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],
        ]
    ];

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

// Set the stroke color
$draw->setStrokeColor('black');

// Set the fill color
$draw->setFillColor('lightgreen');

// Set the scale
$draw->scale(1.5, 1.5);

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

// Create an imagick object
$imagick = new \Imagick();

// Set the image dimensions
$imagick->newImage(400, 500, 'White');

// Set the image format
$imagick->setImageFormat("png");

// Draw the image
$imagick->drawImage($draw);
header("Content-Type: image/png");

// Display the image
echo $imagick->getImageBlob();
?>

Output: 

Reference: http://php.net/manual/en/imagickdraw.scale.php
 


Next Article

Similar Reads