Ecco l'algoritmo (si fa per dire) che calcola l'altezza delle scritte in immagini PNG:
Codice PHP:
<?php
/* PRE CONDIZIONE: la PNG deve avere uno sfondo a tinta unita,
* non sfondi sfumati o a più colori
*/
$bg = array(232,237,241); // inserire lo sfondo (RGB)
$img_URI = 'test.png'; // URI immagine (PNG)
$im = imagecreatefrompng($img_URI);
list($width, $height, $type, $attr) = getimagesize($img_URI);
$fine = false;
for ($y=0; (($y < $height-1) && !$fine);$y++) //(1)
for ($x=0; (($x < $width-1) && !$fine);$x++) {
$color_index = imagecolorat($im, $x, $y);
$rgb = imagecolorsforindex($im, $color_index);
if (!(($bg[0] == $rgb[red]) && ($bg[1] == $rgb[green]) && ($bg[2] == $rgb[blue]) ))
$fine = true;
}
$y--;
echo "POST CONDIZIONE (1): \$y contiene la coordinata y di inizio match: ".$y."
";
if ($fine){
$Y = $y;
$fine = false;
for ($y=$height-1; (($y>=0) && !$fine);$y--) //(2)
for ($x=0; (($x < $width-1) && !$fine);$x++) {
$color_index = imagecolorat($im, $x, $y);
$rgb = imagecolorsforindex($im, $color_index);
if (!(($bg[0] == $rgb[red]) && ($bg[1] == $rgb[green]) && ($bg[2] == $rgb[blue]) ))
$fine = true;
}
$y++;
echo "POST CONDIZIONE (2): \$y contiene la coordinata y di fine match: ".$y."
";
$h = $y-$Y;
echo "L'altezza della scritta e' di ".$h."px";
}
else
echo "Immagine vuota (senza scritte)!";
?>
Per il mio sito è utilissimo per calcolare la dimensione delle scritte, poi si vedrà se riscuoterà successo qui nel forum (non penso).
Posto un'immagine di prova - test.png: