Transparent
<?php $im->rotateImage(new ImagickPixel('#00000000'), 75); ?>
(PECL imagick 2.0.0)
Imagick::rotateImage — Rotates an image
Rotates an image the specified number of degrees. Empty triangles left over from rotating the image are filled with the background color.
background
The background color
degrees
Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.
Returns TRUE
on success.
Version | Description |
---|---|
2.1.0 | Now allows a string representing the color as the first parameter. Previous versions allow only an ImagickPixel object. |
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();
}
?>
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
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();
?>
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();
?>