Algorithmus bei imagefunktion

Razorhawk

Webdesigner und MSP
jap.
Ich habe mir hier eine Funktion geschrieben, welche ein farbiges Bild in ein Schwarzweiß Bild umrechnet geschrieben. und zwar diese Hier:

PHP:
 function greyscale($srcpic,$destpic){

  $picxy = getimagesize($srcpic);
  $image = imagecreatetruecolor($picxy[0],$picxy[1]);
  $image2 = imagecreatefromjpeg($srcpic);

  $x=0;$y=0;

  // repeat the number of pixel in the picture
  for($i=0;$i<=($picxy[1])*($picxy[0]);$i++){
   // if $x greater than the width of the pic then next line
   if($x>$picxy[0]){$y++;$x=0;}

  // teil wurde hier gelöscht aus Copyright gründen usw. ;-p

    $x++;
  }
  imagejpeg($image,$destpic,100);
 }


Also ist nur ein auszug aus der funktion.
ich gebe mal noch die Berechnungsformel für die Graustufen Berechnung mit rein:

Code:
greyscale =  red + green + blue  / 3

also an sich dauert die Berechnung eines mittelgroßen Bildes wie das hier (zum testen für euch) ungefähr 5-6 sekunden.

Gibt es eine bessere Möglichkeit als jeden Pixel durchzugehen, deren Farbe zu erkenn und in den dazugehörigen Grauton umzuwandeln?
 
okay ja wäre eine möglichkeit und die werde ich auch mal probeiren.

Aber ich habe noch andere funktionen geschrieben, wie z.b. Farbsättigung oder Gamma und Kontrasteinstellungen für ein bild.

wie siehts mit denen aus also gibt es allgemein eine bessere Lösung als jeden Pixel durchzugehen?
Danke!
 
Zurück