Ciao a tutti!
Ho trovato uno script che mi permette di contare i colore di una foto ed individuare il numero dei pixel associati al colore.... ho provato ad aggiustarlo... ma mi individui i colori in modo errato... mi potete aiutare? e vedere dove si trova l'errore...?
grazie:quote:
Ho trovato uno script che mi permette di contare i colore di una foto ed individuare il numero dei pixel associati al colore.... ho provato ad aggiustarlo... ma mi individui i colori in modo errato... mi potete aiutare? e vedere dove si trova l'errore...?
grazie:quote:
PHP:
<?php
echo "Dimensioni Immagine (px)";
echo "<BR><BR>";
list($width, $height, $type, $attr) = getimagesize("calcio.jpg");
echo "Image width: " .$width. " px";
echo "<BR>";
echo "Image height: " .$height. " px";
echo "<BR>";
echo "Image type: " .$type;
echo "<BR>";
echo "Attribute: " .$attr;
echo "<BR><BR>";
echo "Colori Immagine";
echo "<BR><BR>";
$img = "calcio.jpg";
$palette = detectColors($img);
$contaColori = countColors($img,$palette);
echo '<img src="' . $img . '" />';
echo '<table>';
for($i=0;$i<count($palette);$i++){
echo '<tr><td style="background:#' . $palette[$i] . '; width:36px;"></td><td>#' . $palette[$i] . ' : ' . $contaColori[$i] . ' px</td></tr>';
}
echo '</table>';
function detectColors($image) {
$palette = array();
$size = getimagesize($image);
if(!$size) {
return FALSE;
}
switch($size['mime']) {
case 'image/jpeg':
$img = imagecreatefromjpeg($image);
break;
case 'image/png':
$img = imagecreatefrompng($image);
break;
case 'image/gif':
$img = imagecreatefromgif($image);
break;
default:
return FALSE;
}
if(!$img) {
return FALSE;
}
for($i = 0; $i < $size[0]; $i++) {
for($j = 0; $j < $size[1]; $j++) {
$thisColor = imagecolorat($img, $i, $j);
$rgb = imagecolorsforindex($img, $thisColor);
$color = sprintf('%02X%02X%02X', (round(round(($rgb['red'] / 0x33)) * 0x33)), round(round(($rgb['green'] / 0x33)) * 0x33), round(round(($rgb['blue'] / 0x33)) * 0x33));
$palette[$color] = isset($palette[$color]) ? ++$palette[$color] : 1;
}
}
arsort($palette);
return array_slice(array_keys($palette), 0);
}
function countColors($image,$arrayColori) {
$conteggioColori = array();
$size = getimagesize($image);
if(!$size) {
return FALSE;
}
switch($size['mime']) {
case 'image/jpeg':
$img = imagecreatefromjpeg($image);
break;
case 'image/png':
$img = imagecreatefrompng($image);
break;
case 'image/gif':
$img = imagecreatefromgif($image);
break;
default:
return FALSE;
}
if(!$img) {
return FALSE;
}
$lunghezzaVettore = count($arrayColori);
$conta=0;
for($c = 0;$c < $lunghezzaVettore; $c++){
$conta=0;
for($i = 0; $i < $size[0]; $i++) {
for($j = 0; $j < $size[1]; $j++) {
$thisColor = imagecolorat($img, $i, $j);
$rgb = imagecolorsforindex($img, $thisColor);
$color = sprintf('%02X%02X%02X', (round(round(($rgb['red'] / 0x33)) * 0x33)), round(round(($rgb['green'] / 0x33)) * 0x33), round(round(($rgb['blue'] / 0x33)) * 0x33));
if($palette[$c] == $color){
$conta+=1;
}
}
}
$conteggioColori[$c] = $conta;
}
return array_slice(array_keys($conteggioColori), 0);
}
?>