HalloPHP

PHP-Farbwähler (ColourPicker)

Codeschnipsel | letzte Änderung am 25. Juni '10 um 22:05 Uhr

Bei diesem Codeschnipsel handelt es sich lediglich um eine Implementierung zur Erzeugung der Oberfläche eines Farbwählers in PHP. Die 256x256 Pixel große Grafik wird pixelweise Zeile für Zeile erzeugt. Die Berechnung der Farbwerte der einzelen Pixel übernimmt das Script.

Ein Vorschaubild, für den im Script (siehe unten) definierten Farbwert, ist unter folgendem Link zu finden: http://hallophp.de/images/colourpicker_php.png.

Verwendet werden kann die Grafik zum Beispiel für die Entwicklung eines dynamischen Farbwählers, mit dem Benutzer Farbwerte über die Grafik auswählen können oder z.B. für den Einsatz als Hintergrundgrafik für ein Captcha, um die Lesbarkeit für Bots zu erschweren.

<?php
header
("Content-type: image/png");

$image imagecreatetruecolor(256256);
imagesavealpha($imagetrue);

$trans_colour imagecolorallocatealpha($image000127);
imagefill($image00$trans_colour);

// at least 1 value needs to be 255
// at least 1 value needs to be 0
$r $r_down 0;
$g $g_down 138;
$b $b_down 255;

$start_colour $r_temp $g_temp $b_temp 255;

// rows
for ($i 0$i 256; ++$i) {
  
// columns
  
for ($j 0$j 256; ++$j) {
    
$color imagecolorallocate($image$r_temp$g_temp$b_temp);
    
imagesetpixel($image$j $i$color);

    
$r_temp -= ($start_colour $r) / 255;
    
$g_temp -= ($start_colour $g) / 255;
    
$b_temp -= ($start_colour $b) / 255;
  }

  
$r -= $r_down 255;
  
$g -= $g_down 255;
  
$b -= $b_down 255;

  --
$start_colour;
  
$r_temp $g_temp $b_temp $start_colour;
}

imagepng($image);
imagedestroy($image);

Antworten