note 37065 added to function.imagecolorstotal

From: Date: Sat, 01 Nov 2003 12:34:23 +0000
Subject: note 37065 added to function.imagecolorstotal
Groups: php.notes 
Request: Send a blank email to php-notes+get-59628@lists.php.net to get a copy of this message
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($fp, filesize($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($c, 26); $c = substr($c, 0, strpos($c, "fe0102")); // Termination for the color table of non-transparent images } else { $c = substr($c, 26); $c = substr($c, 0, strpos($c, "21f904")); // Termination for the color table } echo "<table border='0'>"; $i = 0; $y = 0; $str = ""; $pix = chunk_split($c, 6, ";"); // 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++; // Für 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. ---- Manual Page -- http://www.php.net/manual/en/function.imagecolorstotal.php Edit -- http://master.php.net/manage/user-notes.php?action=edit+37065 Delete -- http://master.php.net/manage/user-notes.php?action=delete+37065&report=yes Reject -- http://master.php.net/manage/user-notes.php?action=reject+37065&report=yes Search -- http://master.php.net/manage/user-notes.php

« previous php.notes (#59628) next »