La función ImagickPixel::isSimilar() es una función incorporada en PHP que se usa para verificar la distancia entre el color descrito por este objeto ImagickPixel y el del objeto provisto, trazando sus valores RGB en el cubo de color. Si la distancia entre los dos puntos es menor que el valor de fuzz dado, los colores son similares.
Sintaxis:
bool ImagickPixel::isSimilar( ImagickPixel $color, float $fuzz )
Parámetros: esta función acepta dos parámetros, como se mencionó anteriormente y se describe a continuación:
- $color: Especifica el píxel que contiene el color a comparar.
- $fuzz: Especifica el valor de fuzz que indica la distancia máxima dentro de la cual considerar estos colores como similares.
Valor de retorno: esta función devuelve un valor bool que indica si los colores son similares (verdadero) o no (falso).
Excepciones: esta función lanza ImagickException en caso de error.
Los siguientes programas ilustran la función ImagickPixel::isSimilar() en PHP:
Programa 1:
<?php // Create a new imagickPixel object $imagickPixel1 = new ImagickPixel('cyan'); // Create another new imagickPixel object $imagickPixel2 = new ImagickPixel('pink'); // Check if similar or not $isSimilar = $imagickPixel1->isSimilar($imagickPixel2, 0.1); if($isSimilar) { echo 'Similar'; } else { echo 'Not Similar'; } ?>
Producción:
Not Similar
Programa 2:
<?php // Create two new imagickPixel objects with same color $imagickPixel1 = new ImagickPixel('orange'); $imagickPixel2 = new ImagickPixel('orange'); // Check if similar $isSimilar = $imagickPixel1->isSimilar($imagickPixel2, 30); if($isSimilar) { echo 'Similar'; } else { echo 'Not Similar'; } ?>
Producción:
Similar
Programa 3:
<?php // Create a new imagick object $imagick = new Imagick( 'https://media.geeksforgeeks.org/wp-content/uploads/geeksforgeeks-13.png'); // Get the image histogram $histogramElements = $imagick->getImageHistogram(); // Get the 1001th pixel $imagickPixel1 = $histogramElements[1000]; // Get the 2001th pixel $imagickPixel2 = $histogramElements[2000]; // Check if both pixels are similar $isSimilar = $imagickPixel1->isSimilar($imagickPixel2, 400); if ($isSimilar) { echo 'Similar'; } else { echo 'Not Similar'; } ?>
Producción:
Not Similar
Referencia: https://www.php.net/manual/en/imagickpixel.issimilar.php