lorg: imageColorAllocateAlpha() Problem

Hallo,

mein Problem: die Funktion imagecolorallocate gibt false zurück, obwohl alle Parameter stimmen (müssten)

mein Code:

  
$fb = imageColorAllocateAlpha($tmp, $f['r'], $f['g'], $f['b'], $trpz);  
  
var_dump($f, $tmp, $trpz, $fb);  
  
if($fb == -1 || $fb == false)  
 throw new Exception('Fehler bei der Erzeugung der Farbe!');  

Ausgabe ist immer außer der Fehlermeldung, die ich später auffange, ist, dass $f ein Array mit eben diesen drei Elementen mit den Indexes r, g und b... die drei sind auch alles Werte zwischen 0 und 255.
Außerdem ist $tmp eine resource und $trpz ist (int)100 unf $fb ist false?

Warum nur?
Ich hab das Problem seit zwei Tagen...

Hat jemand Ideen?

Danke.

MfG

  1. Hi,

    mein Problem: die Funktion imagecolorallocate gibt false zurück, obwohl alle Parameter stimmen (müssten)

    Wirklich false? Typgenau geprueft?

    mein Code:
    $fb = imageColorAllocateAlpha($tmp, $f['r'], $f['g'], $f['b'], $trpz);

    var_dump($f, $tmp, $trpz, $fb);

    Was gibt das aus?

    if($fb == -1 || $fb == false)
    throw new Exception('Fehler bei der Erzeugung der Farbe!');

    Gut, das beantwortet obige Frage, du pruefst *nicht* typgenau.
    Warum nicht?

    MfG ChrisB

    1. Hallo nochmal,

      Wirklich false? Typgenau geprueft?

      Jo...

      mein Code:
      $fb = imageColorAllocateAlpha($tmp, $f['r'], $f['g'], $f['b'], $trpz);

      var_dump($f, $tmp, $trpz, $fb);

      Was gibt das aus?

      array(3) { ["r"]=> int(0) ["g"]=> int(0) ["b"]=> int(0) } resource(6) of type (gd) int(64) int(31)

      OK, jetzt klappt irgendwie, dass eine Farbe aus den drei Array-Elementen generiert wird (was zuvor auch nicht gefunzt hat: zuvor kam IMMER nur weißer Text), allerdings kommt bei mir keine Teiltransparente Schrift raus (Diese Farbe wird als Schriftfarbe genutzt). Egal was ich beim letzten Parameter angebe, es kommt immer eine vollständig normal angezeigte Farbe.

      if($fb == -1 || $fb == false)
      throw new Exception('Fehler bei der Erzeugung der Farbe!');

      Gut, das beantwortet obige Frage, du pruefst *nicht* typgenau.
      Warum nicht?

      Warum? Damit umgehe ich nur, dass wenn das Script später mal auf einem anderen Server läuft, dass die Abfrage dann immernoch geht... da imagecolorallocatealpha ja in manchen PHP-Versionen -1 und in manchen false im Fehlerfall zurückgibt...

      MfG

      1. Hi,

        if($fb == -1 || $fb == false)
        throw new Exception('Fehler bei der Erzeugung der Farbe!');

        Gut, das beantwortet obige Frage, du pruefst *nicht* typgenau.
        Warum nicht?
        Warum? Damit umgehe ich nur, dass wenn das Script später mal auf einem anderen Server läuft, dass die Abfrage dann immernoch geht...

        Doppelte Verneinung ist nicht jedermanns Sache, gelle?

        da imagecolorallocatealpha ja in manchen PHP-Versionen -1 und in manchen false im Fehlerfall zurückgibt...

        Das beantwortet nicht die Frage, warum du auf false nicht typgenau pruefst.
        Mach dich mal mit dem Unterschied zwischen == und === bekannt.

        Deine derzeitige Pruefung wuerde naemlich auch anspringen, wenn es 0 liefert.

        MfG ChrisB

        --
        "The Internet: Technological marvel of marvels - but if you don't know *what* you're lookin' for on the Internet, it is nothing but a time-sucking vortex from hell."
        1. Hallo nochmal,

          da imagecolorallocatealpha ja in manchen PHP-Versionen -1 und in manchen false im Fehlerfall zurückgibt...

          Das beantwortet nicht die Frage, warum du auf false nicht typgenau pruefst.
          Mach dich mal mit dem Unterschied zwischen == und === bekannt.

          Mhfz, das is mir bis jetzt noch nicht aufgefallen, aber seit meinem letzten Post wird die Exception gar nicht mehr geworfen und die Farbe wird auch generiert, aber eben nicht Teiltransparent...

          MfG