PHP 7.0.6 Released

Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImageRotates an image

Description

bool Imagick::rotateImage ( mixed $background , float $degrees )

Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.

Parameters

background

The background color

degrees

Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.

Return Values

Returns TRUE on success.

Changelog

Version Description
2.1.0 Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object.

Examples

Example #1 Imagick::rotateImage()

<?php
function rotateImage($imagePath$angle$color) {
    
$imagick = new \Imagick(realpath($imagePath));
    
$imagick->rotateimage($color$angle);
    
header("Content-Type: image/jpg");
    echo 
$imagick->getImageBlob();
}

?>

User Contributed Notes

AlexG
3 years ago
Transparent

<?php $im->rotateImage(new ImagickPixel('#00000000'), 75); ?>
Anonymous
14 days ago
The degrees for imagick and gd is difference!
GD > rotate 90 means counter clockwise.
Imagick > rotate 90 means clockwise.

GD 90 = Imagick 270 or Imagick 90 = GD 270.

Use this function.

<?php
function calculateCounterClockwise($value)
{
    if (
$value == 0 || $value == 180) {
        return
$value;
    }
    if (
$value < 0 || $value > 360) {
       
$value = 90;
    }

   
$total_degree = 360;
   
$output = intval($total_degree-$value);
    return
$output;
}
// calculateCounterClockwise

echo '1 = '.calculateCounterClockwise(1).'<br>';
echo
'90 = '.calculateCounterClockwise(90).'<br>';
echo
'270 = '.calculateCounterClockwise(270).'<br>';
echo
'359 = '.calculateCounterClockwise(359).'<br>';
echo
'360 = '.calculateCounterClockwise(360).'<br>';
?>

test results:
1 = 359
90 = 270
270 = 90
359 = 1
360 = 0
wjsams at gmail dot com
7 years ago
If you want to rotate an image by a certain degree you can do this:

<?php
header
('content-type: image/jpeg');
$imagick = new Imagick();
$imagick->readImage('castle.jpg');
$imagick->rotateImage(new ImagickPixel(), 90);
print
$imagick->getImage();
?>
Baptiste VALTHIER
5 years ago
You can rotate an jpg image by -13.55° into a transparent png image with :

<?php
$imagick
= new Imagick();
$imagick->readImage('my.jpg');
$imagick->rotateImage(new ImagickPixel('none'), -13.55);
$imagick->writeImage('my_rotated.png');
$imagick->clear();
$imagick->destroy();
?>
To Top