PHP Bild verkleinern mit falschen schwarzen Hintergrund

Hattrix

Cadet 4th Year
Registriert
März 2007
Beiträge
111
Hallo,

lasse ich folgendes Script durchlaufen und lasse es mir über "img" anzeigen, wird das im Bild schwarz angezeigt, das transparent im GIF-Bild ist. Ich möcht es aber gern in weiß. Was muss ich dafür tun?

PHP:
$Grafikdatei = $filefoto;

$Bilddaten = getimagesize($Grafikdatei);

$OriginalBreite = $Bilddaten[0];
$OriginalHoehe = $Bilddaten[1];
$ThumbnailBreite = 20;

if($OriginalBreite < $ThumbnailBreite)
{
$ThumbnailBreite=$OriginalBreite;
}

$Skalierungsfaktor = $OriginalBreite/$ThumbnailBreite;
$ThumbnailHoehe = intval($OriginalHoehe/$Skalierungsfaktor);

if($Bilddaten[2] == 1)
{
$Originalgrafik = ImageCreateFromGIF($Grafikdatei);
$Thumbnailgrafik = ImageCreateTrueColor($ThumbnailBreite, $ThumbnailHoehe);
imagecopyresampled($Thumbnailgrafik, $Originalgrafik, 0, 0, 0, 0, $ThumbnailBreite, $ThumbnailHoehe, $OriginalBreite, $OriginalHoehe);
ImageGIF($Thumbnailgrafik, "test.gif", 100);
 
Probier mal das direkt vor dem imagecopyresampled:
PHP:
$white = ImageColorAllocate($Thumbnailgrafik, 255, 255, 255);
ImageFill($Thumbnailgrafik, 0, 0, $white);

Man könnte es wohl auch transparent machen aber da GIFs keine Halbtransparenz erlauben, wird das eher schlecht aussehen:
PHP:
$background = imagecolorallocate($Thumbnailgrafik, 255, 255, 255);
ImageColorTransparent($Thumbnailgrafik, $background);
imagealphablending($Thumbnailgrafik, false); // ist glaub ich nur für PNG nötig aber probiers mal
Das geht natürlich davon aus, dass die transparente Farbe weiß ist. Falls nicht (die Transparenzfarbe kann man beim Erstellen ja beliebig setzen!), dann schau dir mal den Post von "fred at webblake dot net" vom "14-Jan-2005 10:17" unter http://theserverpages.com/php/manual/en/function.imagecolortransparent.php an.
 
"supplied argument is not a valid Image" ... das bekomme ich als Warnmeldung.
 
Hattrix schrieb:
"supplied argument is not a valid Image" ... das bekomme ich als Warnmeldung.
Darum sagte ich auch DIREKT vor dem imagecopyresampled. Wenn dus natürlich noch weiter vorne (also vor dem Erstellen des Thumbnailimages) schreibst, kanns nicht hinhauen.
 
Danke!! :)

Ich hatte ausversehen eine Zeile "gekillt". *kopfgreif*
 

Ähnliche Themen

Zurück
Oben