imagecolorstotal

(PHP 4, PHP 5)

imagecolorstotal Определение количества цветов в палитре изображения

Описание

int imagecolorstotal ( resource $image )

Возвращает количество цветов в палитре изображения.

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

image

Ресурс изображения, возвращаемый одной из функций создающих изображения, таких как imagecreatefromgif().

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

Возвращает количество цветов в палитре изображения либо 0 для truecolor-изображений.

Примеры

Пример #1 Получение количества цветов в изображении, используя imagecolorstotal()

<?php
// Создание изображения
$im imagecreatefromgif('php.gif');

echo 
'Всего цветов в изображении: ' imagecolorstotal($im);

// Освобождение памяти
imagedestroy($im);
?>

Результатом выполнения данного примера будет что-то подобное:

Total colors in image: 128

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

  • imagecolorat() - Получение индекса цвета пиксела
  • imagecolorsforindex() - Получение цветов, соответствующих индексу
  • imageistruecolor() - Определяет, является ли изображение полноцветным

Коментарии

I created a function to count the colors in a .gif file automatically. Works perfect on Win2k Servers

<?PHP
function bildinfo($bild)
{
/*
******* FUNCTION BILDINFO() ******* ******* ******* *******
******* ******* ******* ******* ******* ******* ******* *******
******* Copyright 2003 by www.BLACKEYE.org ******* *******
******* ******* ******* ******* ******* ******* ******* *******
Please don't change the copyright in this file. You can modify
this file, but NEVER remove the copyright !
If YOU were the creator of this function, you would say the
same, eh ? :)

For more informations / How to use:
HOMEPAGE: www.blackeye.org
******* ******* ******* ******* ******* ******* ******* *******
*/
$fp fopen($bild"rb"); // Open image in binary mode (for windows)
$f fread($fpfilesize($bild));
$c bin2hex($f); // Binary file -> Hex
$c ereg_replace("5c30""0000"$c); // In gif-files "5c30" stands for real "00" values. why ? i dont know
$b $c;

$pos strpos($c"fe0102"); // 6 Byte termination for the color table
if ($pos 0)
{
$c substr($c26);
$c substr($c0strpos($c"fe0102")); // Termination for the color table of non-transparent images
}
else
{
$c substr($c26);
$c substr($c0strpos($c"21f904")); // Termination for the color table
}

echo 
"<table border='0'>";

$i 0;
$y 0;
$str "";
$pix chunk_split($c6";"); // 6 Char long block (color)
$pix explode(";",$pix);
sort($pix);
foreach(
$pix as $col)
{
if (
$col && !ereg($col.";"$str) && strlen($col) == 6// So that no color is twice in the list
{
$str .= $col.";";
$i++; // Fr die Table anzeige
$y++; // Anzahl Farben
if ($i == 1) { echo ""; }
echo 
"<td width='6' height='8' bgcolor='#$col' style='border:1px solid #000000;font-size:1px;' title='2003 by www.BLACKEYE.org'>";
echo 
" ";
echo 
"</td>";
if (
$i == 10)
{
echo 
""$i 0;
}
}
}

echo 
"</table>";
echo 
$y." visible colors";
}

$bild ""// Imagefile
bildinfo($bild);
?> 
Only copy & paste this text into your .php file, where you want to show the image.
2003-11-01 09:34:23
http://php5.kiev.ua/manual/ru/function.imagecolorstotal.html
This code shows the palettes for all .gif files in the current working directory. (Output is HTML.)
<?php
print '<pre>';
foreach(
glob('*.gif') as $src_fn
{
 
$im2 ImageCreateFromGif($src_fn);
 
  echo 
'<a href="',htmlspecialchars($src_fn),'">';
  print 
sprintf('%-30s'$src_fn);
  echo 
'</a>';

 
$cc ImageColorsTotal($im2);
  for(
$n=0$n<$cc; ++$n)
  {
   
$c ImageColorsForIndex($im2$n);
    print 
     
sprintf('<span style="background:#%02X%02X%02X">&nbsp;</span>',
       
$c['red'], $c['green'], $c['blue']);
  }
 
ImageDestroy($im2);
  print 
"\n";
}
print 
'</pre>';
?>
2007-04-27 11:07:51
http://php5.kiev.ua/manual/ru/function.imagecolorstotal.html

    Поддержать сайт на родительском проекте КГБ