View Full Version : [PHP] GD Bug?
satoshi2005
30-01-2007, 14:47
Salve gente,
Ho un problema e non riesco a capire se sono io che sbaglio o se è proprio un problema della libreria GD.
Vi prego di notare la differenza tra:
http://www.satoshi.ch/orologio/prova.php?gradi=44
e:
http://www.satoshi.ch/orologio/prova.php?gradi=45
perché quando i gradi sono >= 45 allora va via la trasparenza?
Codice:
<?php
header("Content-Type: image/png");
$im = imageCreateFromPNG("lancetta_grande_cut.png");
$bgcolor = imageColorAllocateAlpha($im, 0, 0, 0, 127);
$image_rotated = imageRotate($im, ($_GET['gradi'] * (-1)), $bgcolor);
imageAlphaBlending($image_rotated, false);
imageSaveAlpha($image_rotated, true);
imagePNG($image_rotated);
?>
Grazie mille! sato
yorkeiser
30-01-2007, 15:15
Uhm, l'intervallo di trasparenza effettivamente va da -44 a 45° da quel che vedo, e non vedo perchè dovresti avere problemi su altri gradi. Da totale ignorante su tali librerie, mi spieghi cosa dovrebbe fare la
$bgcolor = imageColorAllocateAlpha($im, 0, 0, 0, 127);
Mi sembra tu stia assegnando una maschera di trasparenze a partire dall'immagine originale, ma non capisco a cosa si riferiscano i tre parametri settati a 0
satoshi2005
30-01-2007, 15:31
Uhm, l'intervallo di trasparenza effettivamente va da -44 a 45° da quel che vedo, e non vedo perchè dovresti avere problemi su altri gradi. Da totale ignorante su tali librerie, mi spieghi cosa dovrebbe fare la
$bgcolor = imageColorAllocateAlpha($im, 0, 0, 0, 127);
Mi sembra tu stia assegnando una maschera di trasparenze a partire dall'immagine originale, ma non capisco a cosa si riferiscano i tre parametri settati a 0
0 rosso, 0 verde e 0 blu.. il 127 sta per trasparente al 100%.. quindi invece di 0 0 0 puoi mettere qualsiasi altro numero compreso tra 0 e 255 che non cambia niente..
http://ch2.php.net/manual/en/function.imagecolorallocatealpha.php
yorkeiser
30-01-2007, 15:39
Se sono terne RGB dovresti settarle tutte a 255 se hai il fondo bianco, i bordi neri possono dipendere da quello (la tripletta 0,0,0 equivale al nero).
satoshi2005
30-01-2007, 15:59
Se sono terne RGB dovresti settarle tutte a 255 se hai il fondo bianco, i bordi neri possono dipendere da quello (la tripletta 0,0,0 equivale al nero).
Ma non cambia niente! Posso mettere anche rosso verde giallo o blu che non cambia.. perché il nero che mi mette come sfondo non lo prende da $bgcolor.. chissà da dove lo prende..
Ma non cambia niente! Posso mettere anche rosso verde giallo o blu che non cambia.. perché il nero che mi mette come sfondo non lo prende da $bgcolor.. chissà da dove lo prende..Semplice:
$bgcolor = imageColorAllocateAlpha($im, 0, 0, 0, 127);
127 indica "completamente trasparente". Il valore è tra 0 e 127. ;)
satoshi2005
30-01-2007, 16:29
Semplice:
$bgcolor = imageColorAllocateAlpha($im, 0, 0, 0, 127);
127 indica "completamente trasparente". Il valore è tra 0 e 127. ;)
Sì e visto che dovrebbe essere completamente trasparente perché me lo fa nero?
Potrebbe essere un bug della GD...?!
satoshi2005
31-01-2007, 15:03
up..
satoshi2005
05-02-2007, 09:34
up
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.