Some transformations including Imagick ::rotateImage() may change "image page" -- working area inside the image you work on.
Be careful with future modifications afterwards because the image page would be different from new sizes of the image.
For example, if you do Imagic::cropImage() after rotation, you need to set image page properly, otherwise your crop would be performed relating to wrong coordinates (depending on rotation angle, resulting image size may vary).
<?php
$Image = new Imagick($sourceImagePath);
$transparent = '#00000000';
$Image->rotateImage(new \ImagickPixel(), 45); // This makes resulting image bigger
// Set page to be of the full size of new image, starting at top left corner (0, 0)
$Image->setImagePage($Image->getImageWidth(), $Image->getImageHeight(), 0, 0);
$Image->cropImage($crop_w, $crop_h, $crop_x, $crop_y);
?>
PHP.mk документација
Imagick::rotateImage
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
Патека
imagick.rotateimage.php
Локална патека за оваа страница.
Извор
php.net/manual/en
Оригиналниот HTML се реупотребува и локално се стилизира.
Режим
Прокси + превод во позадина
Кодовите, табелите и белешките остануваат читливи во истиот тек.
Референца
imagick.rotateimage.php
Imagick::rotateImage
Референца за `imagick.rotateimage.php` со подобрена типографија и навигација.
Imagick::rotateImage
(PECL imagick 2, PECL imagick 3)
Imagick::rotateImage — Ротира слика
= NULL
Ротира слика за одреден број степени. Празните триаголници што остануваат од ротирањето на сликата се пополнуваат со бојата на позадината.
Параметри
background-
The background color
degrees-
Rotation angle, in degrees. The rotation angle is interpreted as the number of degrees to rotate the image clockwise.
Вратени вредности
Патеката до PHP скриптата што треба да се провери. true на успешен исход.
Дневник на промени
| Верзија | = NULL |
|---|---|
| Формат на сликата. Овој параметар беше додаден во верзијата на Imagick 2.0.1. | Сега дозволува стринг што ја претставува бојата како прв параметар. Претходните верзии дозволуваа само ImagickPixel објект. |
Примери
Пример #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();
}
?>Белешки од корисници 4 белешки
gleb dot deykalo at gmail dot com ¶
пред 9 години
Анонимен ¶
пред 9 години
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 на gmail точка com ¶
пред 17 години
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();
?>