Autor Zpráva
vecerapl
Profil
Jaký script v PHP použít na možnost detekce průhledného pozadí u obrázků PNG a GIF?


Jde mě hlavně o to, že znám cestu k obrázku uloženého ve složce /images/pruhledny-obrazek.png a takto daný obrázek bych chtěl přes PHP script zjistit, zda-li se jedná o průhledný nebo neprůhledný obrázek.
Chro
Profil
<?php
function image_alpha_percentage($file)
{
if (file_exists($file))
{
list($width, $height, $type) = getimagesize($file);
}
else
{
return FALSE;
}

switch ($type)
{
case 1:
$img = imagecreatefromgif($file);
break;
case 3:
$img = imagecreatefrompng($file);
break;
default:
return FALSE;
}

$count_alpha = 0;
for ($y = 0; $y < $height; $y++)
{
for ($x = 0; $x < $width; $x++)
{
$color = imagecolorat($img, $x, $y);
$colors_index = imagecolorsforindex($img, $color);
if (isset($colors_index['alpha']) && $colors_index['alpha'] > 0)
{
$count_alpha++;
}
}
}

imagedestroy($img);
return ($count_alpha / ($width * $height)) * 100;
}

//pouziti
$result = image_alpha_percentage('nazev_souboru_gif_nebo_png');
var_dump($result);
?>
Při pokusu o kontrolu souboru jiného formátu než PNG a GIF vrací false. Při pokusu o kontrolu neexistujícího souboru vrací false. U PNG a GIF vrací hodnodu float 0 - 100, procentuální zastoupení transparentnosti obrázku. To znamená, že pokud je funkcí navrácena hodnota větší než nula, obrázek obsahuje transparentnost.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: