Jump to content
xt:Commerce Community Forum

gifs mit Transparenz


uwe weissbaum

Recommended Posts

Hallo!

Das ist keine Frage sondern eine Lösung.

Stichwörter: Produktbild, transparent, Transparenz, gif, schwarz, Produktbilder

Wenn man für die Produktbilder Gif-Dateien nimmt, die Transparenz enthalten, dann werden von xt:commerce bei der Bildmanipulation die transparenten Bereiche schwarz.

Um sie transparent zu lassen folgendes tun:

Datei admin/includes/classes/image_manipulator_GD2.php öffnen

Ganz unten gibt es die Methode create(). Die ersetzen durch folgenden Code:

	
function create()
{
if($this->s !== Null)
{
if($this->d !== "")
{
ob_start();
/*keep gif transparent*/
if ($this->k==1){
$im = $this->t; //image resource
$img = imagecreatetruecolor($this->m,$this->n);
$trans = imagecolorallocate($img,0,0,0); //farbe die transparent werden soll r,g,b
imagecolortransparent($img,$trans);
imagecopy($img,$im,0,0,0,0,$this->m,$this->n);
imagetruecolortopalette($img, true, 256);
imageinterlace($img);
imagegif($img,$this->d);
imagedestroy($img);
}

else{
imagejpeg($this->t, $this->d, $this->e);
}
ob_end_clean();
}
imagedestroy($this->s);
imagedestroy($this->t);
}
}

[/PHP]

Achtung: Die letzte geschweifte Klammer in der Datei schließt die Klasse und nicht die Methode.

Das ganze ist natürlich ein schlechter Hack. Wenn eure gifs irgendwo schwarze Bereiche haben, dann werden die dummerweise auch alle transparent. Um das zu verhindern reicht es allerdings, wenn ihr diese Bereiche statt schwarz einfach gaaaaaanz dunkelgrau macht. Also die Farbwerte rgb auf 1 1 1 oder hexdezimal auf 010101.

Außerdem braucht ihr GD2 und zwar ab Version 2.0.28, da vorher überhaupt kein gif unterstützt wird.

Vielleicht hilft es ja jemandem.

Gruß

Uwe

Link to comment
Share on other sites

  • 3 weeks later...
  • 11 months later...
  • 3 months later...
  • 1 month later...

Archived

This topic is now archived and is closed to further replies.

×
  • Create New...