ciao! ho un problema inspiegabile, mi ci sto perdendo dietro da 2 ore. houna funzioncina che mi smusa gli angoli di una foto che è allegata d un articolo. io prendo dal db l'url della foto e la funzione mi ci smussa gli angoli. l'ho predisposta, un pò artigianalmente, a lavorare sia con .jpg che .gif. se è una foto .jpg non ho alcun problema, xò, ho scoperto che con le gif non va e non mi spiego il motivo, visto che non cambia assolutamente nulla! il codice è questo, se qlc mi sa aiutare...tnx!!!
Codice PHP:
...
$result_dettaglio = mysql_query("SELECT foto FROM $archivio_trovasubmenu WHERE idmenu='$idmenu' AND idsubmenu='$idsubmenu' AND id='$id'", $connessione);
$row_foto = mysql_fetch_array($result_dettaglio);
$imgname = "$_SERVER[DOCUMENT_ROOT]$row_foto[foto]";
$estensione_file = substr($imgname, -3);
$dim = getimagesize($imgname);
$new_width = 300;
$new_height = ceil( $dim[1] / $dim[0] * $new_width );
if($estensione_file=="gif")
{
$src_img = imagecreatefromgif( $imgname );
}
else
{
$src_img = imagecreatefromjpeg( $imgname );
}
$new_img = Imagecreatetruecolor( $new_width, $new_height );
imagecopyresampled( $new_img, $src_img, 0, 0, 0, 0,$new_width, $new_height, $dim[0], $dim[1] );
$colore = imagecolorallocate( $new_img, 255, 255, 255 );
// dimensione in pixel dell'angolo curvo
$dim_angolo = 5;
for ( $i = 0; $i <= $dim_angolo; $i++ ){
$y = $dim_angolo - ceil( sqrt( 2 * $dim_angolo * $i - pow( $i, 2 ) ) );
$x = $i;
imageline( $new_img, $x, 0, $x, $y, $colore );
$y2 = $new_height - $y;
imageline( $new_img, $x, $y2, $x, $new_height, $colore );
$x = $new_width - $i;
imageline( $new_img, $x, 0, $x, $y, $colore );
imageline( $new_img, $x, $y2, $x, $new_height, $colore );
}
if($estensione_file=="gif")
{
header( 'content-type: image/gif' );
imagegif( $new_img, '', 100 );}
else
{
header( 'content-type: image/jpeg' );
imagejpeg( $new_img, '', 100 );
}
imagedestroy( $new_img );
imagedestroy( $src_img );