Frankie: Funktion mit Bildbuffer-Parameter funktioniert nicht

Hallo Forum,

ich habe eine Bilddatei mit imagecreatefromjpeg in die Datei $image_buffer eingelesen.

Nun möchte ich eine Funktion auf diesen Bildbuffer anwenden, die das Bild in Graustufen umwandelt.

Dazu benutze ich folgende Funktion:

function convert_to_gray($image)
{
  for ($i=0;$i<$y;$i++)
  {
    for ($j=0;$j<$x;$j++)
    {
      $pos=imagecolorat($image,$j,$i);
      $f=imagecolorsforindex($image,$pos);
      $gst=$f['red']*0.15+$f['green']*0.5+$f['blue']*0.35;
      $col=imagecolorresolve($image,$gst,$gst,$gst);
      imagesetpixel($image,$j,$i,$col);
    }
  }
  return $image;
}

Wenn ich nun nach dem einlesen $image_buffer=convert_to_gray($image_buffer) aufrufe, werden die Farben nicht umgewandelt. Schreibe ich die Farbwandel-Routine allerdings direkt dahinter nicht als Funktion, funktioniert es.

Auch das Übergeben des Buffers durch &$image funktioniert nicht.

So, nun haben hoffentlich alle mein Problem erkannt ;-)

  1. Huhu Frankie

    Schreibe ich die Farbwandel-Routine allerdings direkt dahinter nicht als Funktion, funktioniert es.

    Was ein eindeutiges Indiz für fehlende Variablen ist.

    Setze Dein Error-Reporting auf E_ALL, dann bekommst Du gesagt welche das sind.
    Oder meditiere über die ersten beiden ZeYlen in der verfliXten Funktion.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
  2. Hallo,
    ich weiß, selber programmieren ist meist schöner,
    aber wenn mal hier: http://phpthumb.sourceforge.net/
    schaust.
    Das ist ein geniales Skript. Da kann man mit Bilder wirklich fast alles machen. Verkleinern, vergrößern, S/W, .....
    Und es ist sehr einfach zu bedienen.
    Viele grüße
    Martin