Imagick::trimImage

(PECL imagick 2.0.0)

Imagick::trimImageУдаляет края с изображения

Описание

Imagick::trimImage ( float $fuzz ) : bool

Удаляет края, которые являются цветом фона с изображения. Этот метод доступен, если Imagick был скомпилирован с версией ImageMagick 6.2.9 или старше.

Список параметров

fuzz

По умолчанию цель должна точно соответствовать определенному цвету пикселя. Однако во многих случаях два цвета могут незначительно отличаться. Размытый элемент изображения определяет, насколько допустимо, чтобы два цвета считались одинаковыми. Этот параметр представляет собой изменение квантового диапазона.

Возвращаемые значения

В случае успешной работы возвращает TRUE.

Ошибки

Вызывает ImagickException при ошибке.

Примеры

Пример #1 Пример использования Imagick::trimImage():

Обрежьте изображение, затем отобразите в браузере.

<?php
/* Создайте объект и прочитайте изображение в */
$im = new Imagick("image.jpg");

/* Обрежьте изображение. */
$im->trimImage(0);

/* Выведите изображение */
header("Content-Type: image/" $im->getImageFormat());
echo 
$im;
?>

Смотрите также

  • Imagick::getQuantumDepth() - Возвращает величину глубины
  • Imagick::getQuantumRange() - Возвращает величину размера спектра Imagick
  • imagecropauto() - Обрезает изображение автоматически, используя один из доступных режимов

add a note add a note

User Contributed Notes 3 notes

up
10
dhp
11 years ago
After operations that change the crop of the image, like trimImage does, IM preserves the old canvas and positioning info. If you need to do additional operations on the image based on the new size, you'll need to reset this info with setImagePage. This is the equivalent of the +repage command line argument.

<?php
$im
->trimImage(0);
$im->setImagePage(0, 0, 0, 0);
?>
up
6
Kirsty Forrester
7 years ago
The command for trim can return info which tells you the coordinates of where the image was cropped and the new dimensions of the trimmed image. I couldn't find an example for how to do that with this class, so here's how I did it:

<?php

// Create and trim image
$image = new Imagick('image.png');
$image->trimImage(0.3);

/**
* Imagick:: getImagePage() gives us an array with the width, height, x and y coordinates of the trimmed image
* However, the width and height are of the original image
*/
$imagePage = $image->getImagePage();
list(
$x, $y) = array($imagePage['x'], $imagePage['y']);

// So we need to reset the image page to get the right height and width of the trimmed image
$image->setImagePage(0, 0, 0, 0);
list(
$width, $height) = array($image->width, $image->height);

?>

This will leave you with two variables for the width and height of the trimmed image, plus two variables for the x-coordinate and y-coordinate of the trimmed area relative to the original image.

This information is useful when the image you're trimming is the difference between two images (e.g. from Imagick::compareImages(), and you want to crop the original image to the same size and position as the difference.
up
0
Mark van der Velden
12 years ago
This method requires ImageMagick version >= 6.2.8
To Top