Weiße Flächen transparent machen

Trueffelwurm

Mitglied
Moin!

Ich würde gerne ein einem Bild (trendanalysen/graphen) den weißen Hintergrund transparent machen.
Ich habe schon einiges versucht, aber bin noch zu keinem zufriedenstellenden Ergebnis gekommen.

Das einzige was funktioniert ist folgendes:
PHP:
...
$image=imagecreatefromstring($data);
imagealphablending($image, false);
$transparent = imagecolorallocatealpha($image,255,255,255,127);
imagefill($image,0,0,$transparent);
imagesavealpha($image,true);
...

Das funktioniert durch den imagefill($im,0,0) aber nur, wenn der Pixel 0,0 weiß ist, und die Graphen nie die oberste Pixelreihe erreichen, sprich der Hintergrund eine durchgehende Fläche ist. Ich würde gerne alle weißen Pixel transparent machen.

Jemand ne Idee?

Gruß,
Jens
 
versuch dich mal an folgender Funktion:

PHP:
$white = imagecolorallocate($image,255,255,255);
imagecolortransparent($image,$white);
 
Moin,

nach einer Woche krank im Bett bin ich nun endlich zum testen gekommen.
Imagefilltoborder ist leider nicht das, was ich suche.
Imagecolortransparent schon eher, hatte ich auch schon ausprobiert, funktioniert bei mir aber nicht. Bei den Kommentaren auf php.net hab ich folgendes Gefunden, was aber auch nicht funktioniert (weiß bleibt weiß):

PHP:
$source=imagecreatefromstring($data);
$image=imagecreatetruecolor(imagesx($source),imagesy($source));
imagealphablending($image, false);
$transparent = imagecolorallocatealpha($image,0,0,0,127);
imagefill($image,0,0,$transparent);
imagesavealpha($image,true);
imagecopyresampled($image,$source,0,0,0,0,imagesx($source),imagesy($source),imagesx($source),imagesy($source));

Gruß,
Jens
 
Zurück