Imagick::rotateImage

(PECL imagick 2.0.0)

Imagick::rotateImageRotates an image

Beschreibung

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.

Parameter-Liste

background

The background color

degrees

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

R├╝ckgabewerte

Liefert TRUE bei Erfolg.

Changelog

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

Beispiele

Beispiel #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();
}

?>

add a note add a note

User Contributed Notes 4 notes

up
2
AlexG
3 years ago
Transparent

<?php $im->rotateImage(new ImagickPixel('#00000000'), 75); ?>
up
1
Anonymous
1 month 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
up
-2
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();
?>
up
-8
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