PNG Hintergrundfarbe transparent setzen lassen

than

Mitglied
Hallo.

Ich wollte nur kurz Nachfragen, ob es möglich ist die Hintergrundfarbe eines Wasserzeichen PNG's transparent zu machen, ohne jedoch den Farbwert vorher mit Hand in imagecolorallocate() einzutragen?

Gibt es da eine Möglichkeit das PHP selber den Farbwert ermittelt und ihn dann an imagecolortransparent() übergibt und transparent schaltet?

Ich habe gestern Nacht lange im Web nach einer Lösung gesucht aber nur diese mit der Handeingabe gefunden :rolleyes:

Schönen Tag noch
 
Hallo.

Du wirst es mir vielleicht nicht glauben, aber ich habe auch diese Funktion gefunden gehabt und ausprobiert.
Jedoch funktionierte es bei mir nicht und dann habe ich mir mal den Wert von imagecolorat("wz.png", 1, 1) ausgeben lassen, welcher nur eine 0 war.
Die Hintergrundfarbe des Bildes war schwarz und ich hatte mir erhofft, mit imagecolorat() ein Farbschlüssel wie #000000 zu bekommen. Mit einer 0 weiss ich nichts anzufangen. Was soll dieser Wert einem aussagen?
Oder wie muss man diesen weiter verarbeiten?
 
Hast du dir auch das Beispiel genau angeguckt?
Denn du musst die Werte für eine sinnvolle Auswertung weiter verarbeiten:

PHP:
<?php
$im = imagecreatefrompng("php.png");
$rgb = imagecolorat($im, 10, 15);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
?>
 
Dein Beispiel hab ich da so nicht gefunden. Ein Ähnliches
PHP:
$rgb = imagecolorat($im, $x, $y);
$r = ($rgb >> 16);
$g = ($rgb >> 8) & 255;
$b = $rgb & 255;
gibt aber auch keinen Aufschluss wegen einer Weiterverarbeitung. Ausserdem möchte ich doch nur ein Pixel überprüfen lassen (und gehe davon aus, dass der Hintergrund die selbe Farbe durchgehend hat und sich nicht ändert) Und dort werden mit einer Schleife alle Pixel durchforstet.

Schau(t) mal hier da wird es ganz einfach angewendet (auch wenn es SO wiederrum bei mir nichts sich tut) argh
 
Dann schau dir imagecolorsforindex() mal an.
Darüber kann man den Wert von alpha abfragen.
 
Zurück