SunshinePHP Developer Conference 2015

Imagick::getImageHistogram

(PECL imagick 2.0.0)

Imagick::getImageHistogramRetourne l'histogramme de l'image

Description

array Imagick::getImageHistogram ( void )

Retourne l'histogramme de l'image, sous forme d'un tableau d'objets ImagickPixel.

Valeurs de retour

Retourne un tableau d'objets ImagickPixel. Émet une exception ImagickException en cas d'échec.

Erreurs / Exceptions

Lance une exception ImagickException si une erreur survient.

add a note add a note

User Contributed Notes 1 note

up
1
Iddles
3 years ago
Scratched my head for a while trying to figure out why this only returned a list of coloured pixels, and seemingly no colour count. Well it turns out that for some reason, the ImagickPixel class has a "getColorCount" method, which seems a strange place for it but hey.

<?php
$image
= new Imagick("thing.png");
$pixels=$image->getImageHistogram();
foreach(
$pixels as $p){
$colors = $p->getColor();
foreach(
$colors as $c){
        print(
"$c\t" );
}
print(
"\t:\t" . $p->getColorCount() . "\n" );
}
?>

This will print out something like:

252    250    252    1    :    125
194    156    182    1    :    126
109    18    79    1    :    11440
2    117    162    1    :    12761
255    255    255    1    :    40769

...where the colums are red, green, blue, alpha, followed by the number of times that colour appears in the image.
To Top