note 76032 deleted from function.imagecolorset by nlopess
| From: | nlopess@php.net | Date: | Fri, 29 Jun 2007 09:12:33 +0000 |
| Subject: | note 76032 deleted from function.imagecolorset by nlopess | ||
| References: | 1 | Groups: | php.notes |
| Request: | Send a blank email to php-notes+get-128077@lists.php.net to get a copy of this message | ||
Note Submitter: wolfgang_ling at NOSPAM dot yahoo dot fr
Reason: non-english
----
C'est la même fonction, mais en mettant imagecolorstotal hors de la boucle, on évite de
le recalculer a chaque fois (comme le nombre de couleurs de l'image n'est pas censé
changé, il vaut mieux ne faire le test qu'une fois).
<?php
function imagetograyscale($im)
{
if (imageistruecolor($im)) {
imagetruecolortopalette($im, false, 256);
}
$total = imagecolorstotal($im);
for ($c = 0; $c < $total; $c++) {
$col = imagecolorsforindex($im, $c);
$gray = round(0.299 * $col['red'] + 0.587 * $col['green'] + 0.114 *
$col['blue']);
imagecolorset($im, $c, $gray, $gray, $gray);
}
}
?>