Er is geen CSS ondersteuning.
Sommige webhosters hebben hun servers dusdanig geconfigureerd dat je niet over alle
standaard-procedures van de gd2-library kan beschikken. (b.v. sommige debian-configs van Leaseweb).
IMG_FILTER_EDGEDETECT werkt dan ook niet en daarom staat deze procedure op de pagina.
Deze "work-around" werkt prima, maar is niet zo snel als de standaard-procedure (IMG_FILTER_EDGEDETECT).
Maar als dat verder geen probleem voor jou is kan je een php-file met de naam edge-detection.php
aanmaken en daarin de hieronderstaande code plaatsen. Voer bij de variabele $edge_plaatje de naam
van een afbeelding in, en roep deze routine aan (ergens in de body van jouw pagina) met
<img src="edge-detection.php" />. Het resultaat van de procedure is op deze pagina te zien.
De (hier verkleinde) afbeelding, in kleur, wordt gebruikt om de "edge-detect-afbeelding" op het
scherm te "zetten".
<?php
function fixhelderheid($pixel){
$pixel=sprintf('%06x',$pixel);
$rood=hexdec(substr($pixel,0,2))*0.298;
$groen=hexdec(substr($pixel,2,2))*0.589;
$blauw=hexdec(substr($pixel,4))*0.109;
return $rood+$groen+$blauw;}
$edge_plaatje="edge.jpg";
$werkplaatje=imagecreatefromjpeg($edge_plaatje);
$afmetingen=getimagesize($edge_plaatje);
$resultaat=imagecreatetruecolor($afmetingen[0],$afmetingen[1]);
for($x=0;$x<$afmetingen[0];$x++){
for($y=0;$y<$afmetingen[1];$y++){
$pixel_omhoog=fixhelderheid(imagecolorat($werkplaatje,$x,$y-1));
$pixel_omlaag=fixhelderheid(imagecolorat($werkplaatje,$x,$y+1));
$pixel_links=fixhelderheid(imagecolorat($werkplaatje,$x-1,$y));
$pixel_rechts=fixhelderheid(imagecolorat($werkplaatje,$x+1,$y));
$pixel_linksboven=fixhelderheid(imagecolorat($werkplaatje,$x-1,$y-1));
$pixel_rechtsboven=fixhelderheid(imagecolorat($werkplaatje,$x+1,$y-1));
$pixel_benedenlinks=fixhelderheid(imagecolorat($werkplaatje,$x-1,$y+1));
$pixel_benedenrechts=fixhelderheid(imagecolorat($werkplaatje,$x+1,$y+1));
$regelx=($pixel_rechtsboven+($pixel_rechts*2)+$pixel_benedenrechts)-($pixel_linksboven+($pixel_links*2)+$pixel_benedenlinks);
$regely=($pixel_linksboven+($pixel_omhoog*2)+$pixel_rechtsboven)-($pixel_benedenlinks+($pixel_omlaag*2)+$pixel_benedenrechts);
$grijs=sqrt($regelx*$regelx+$regely+$regely);
$grijs=255-$grijs;
if($grijs>255){$grijs=255;}
if($grijs<0){$grijs=0;}
$grijs_veranderd=imagecolorallocate($resultaat,$grijs,$grijs,$grijs);
imagesetpixel($resultaat,$x,$y,$grijs_veranderd);}}
header('Content-Type: image/jpeg');
imagejpeg($resultaat);
imagedestroy($werkplaatje);
imagedestroy($resultaat);
?>
cache 09-02-2011