KOMPOOS.NL

grayscale image

home » php » image-effects » grayscale-image.html

sitemap


voorbeeld php grayscale

grayscale afbeelding

uitleg php grayscale

Maak een file met de naam "grayscale.php" aan en plaats daarin de php code die hieronder staat. En waar je de zwart-wit (grijstinten) afbeelding wilt hebben plaats je de (html) regel die je, ook, hieronder kunt vinden. Het voordeel van deze procedure is dat je niet de beschikking over de GD2 library hoeft te hebben om het grayscale-effect te maken. Dankzij PHP werkt deze procedure in alle browsers (cross browser) en valideert, voor het overige, op alle mogelijke manieren. Als je het origineel, wat bij de procedure is gebruikt, wilt bekijken heb ik die achter deze link (grayscale.jpg) gezet.

html voor grayscale procedure

<img src="grayscale.php?src=de_naam_van_jouw_file.jpg">

php code voor de grayscale procedure


<?php
    $grayscale_file=$_GET[src];
    if(is_file($grayscale_file)){
        $het_hele_pad=explode(".",$grayscale_file);
        $eindindex=sizeof($het_hele_pad)-1;
        $extensie=$het_hele_pad[$eindindex];
        if(preg_match("/jpg|jpeg|JPG|JPEG/",$extensie)){
            $temp_gray_file=imagecreatefromjpeg($grayscale_file);}
        $breedte_afbeelding=imageSX($temp_gray_file);
        $hoogte_afbeelding=imageSY($temp_gray_file);
        for($y=0;$y<$hoogte_afbeelding;$y++) {
            for($x=0;$x<$breedte_afbeelding;$x++) {
                $rgb=imagecolorat($temp_gray_file,$x,$y);
                $rood=($rgb >> 16)& 0xFF;
                $groen=($rgb >> 8)& 0xFF;
                $blauw=$rgb & 0xFF;
                $grijs=round(.299*$rood + .587*$groen + .114*$blauw);
                $grijs_rood=$grijs << 16;  
                $grijs_groen=$grijs << 8;   
                $grijs_blauw=$grijs;     
                $grijs_kleur=$grijs_rood | $grijs_groen | $grijs_blauw;
                imagesetpixel($temp_gray_file,$x,$y,$grijs_kleur);
                imagecolorallocate($temp_gray_file,$grijs,$grijs,$grijs);}}
        $grayscale_afbeelding=ImageCreateTrueColor($breedte_afbeelding,$hoogte_afbeelding);
        imagecopy($grayscale_afbeelding,$temp_gray_file,0,0,0,0,$breedte_afbeelding,$hoogte_afbeelding);
        header("Content-type:image/jpeg");
        imagejpeg($grayscale_afbeelding);
        imagedestroy($grayscale_afbeelding);   
        imagedestroy($temp_gray_file);}
?>		
Gebruik voor alle voorbeelden op de http://kompoos.nl een valide html5 pagina.