PHP 8.1.0 Released!

Imagick::subImageMatch

(PECL imagick 3 >= 3.3.0)

Imagick::subImageMatchОписание

Описание

public Imagick::subImageMatch(Imagick $Imagick, array &$offset = ?, float &$similarity = ?): Imagick

Выполняет поиск фрагмента изображения в текущем изображении и возвращает второстепенное изображение, в котором точное совпадение является полностью белым, а если ни один из пикселей не совпадает — чёрным, в противном случае - некоторым промежуточным уровнем серого. Вы также можете передать необязательные параметры bestMatch и similarity. После вызова функции similarity будет установлено на "score" сходства между второстепенным изображением и соответствующей позицией на большом изображении, bestMatch будет содержать ассоциативный массив с элементами x, y, width, height, которые описывают совпадающую область.

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

Imagick

offset

similarity

Новое изображение, отображающее степень сходства в каждом пикселе.

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

Примеры

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

<?php
function subImageMatch($imagePath) {
    
$imagick = new \Imagick(realpath($imagePath));
    
$imagick2 = clone $imagick;
    
$imagick2->cropimage(4040250110);
    
$imagick2->vignetteimage(0133);

    
$similarity null;
    
$bestMatch null;
    
$comparison $imagick->subImageMatch($imagick2$bestMatch$similarity);

    
$comparison->setImageFormat('png');
    
header("Content-Type: image/png");
    echo 
$imagick->getImageBlob();
}

?>

add a note add a note

User Contributed Notes 1 note

up
0
inipel at ya dot ru
2 months ago
After $ im->cropImage method, $ im->subImageMatch doesn't work, before using $ im->subImageMatch, use $ im->setImagePage(0, 0, 0, 0);

The sequence is as follows:
$ im->cropImage();
$ im->setImagePage (0, 0, 0, 0);
$ im->subImageMatch()
To Top