css/image-effects/round-image-css.html | php/image-effects/ronde-afbeelding.html | javascripts/image-effects/ronde-plaatjes.html

Niet alleen met CSS en javascript kan je ronde plaatjes maken, ook met PHP is dit mogelijk. Om een rounded image op jouw pagina te plaatsen moet je een file maken met de naam rond-plaatje.php en daar de hieronderstaande php-code in plaatsen. Om het effect zichtbaar te maken hoef je alleen maar een regel html op de pagina te zetten (zoals hieronder is aangegeven). De parameters achter het vraagteken (?) op de opdrachtregel werken als volgt. Achter ?src= plaats je de naam van de file die "rond" moet worden gemaakt. Achter & plaats je de kleur-code die als achtergrond moet dienen. En voor de rest moet je er voor zorgen dat de hoogte, breedte en alt benoemd is op de opdrachtregel.
<img src="rond-plaatje.php?src=rond-plaatje.jpg&kleur=ffffff" alt="ronde hoek php" width="180" height="180" />
<?php
$ronde_afbeelding=$_GET["src"];
$vorm_afbeelding=90;
$kleur=isset($_GET["kleur"]) ? $_GET["kleur"]:"ffffff" ;
list($ronde_afbeelding_width,$ronde_afbeelding_height,$ronde_afbeelding_type )=getimagesize($ronde_afbeelding);
switch($ronde_afbeelding_type){
case IMAGETYPE_GIF:
$rond_plaatje=imagecreatefromgif($ronde_afbeelding);
break;
case IMAGETYPE_JPEG:
$rond_plaatje=imagecreatefromjpeg($ronde_afbeelding);
break;
case IMAGETYPE_PNG:
$rond_plaatje=imagecreatefrompng($ronde_afbeelding);
break;}
$rounded_image=imagecreatetruecolor($vorm_afbeelding*2,$vorm_afbeelding*2);
$wordt_transparant = imagecolorallocate($rounded_image,0,0,0);
$de_kleur = imagecolorallocate($rounded_image,hexdec(substr($kleur,0,2)),hexdec(substr($kleur,2,2)),hexdec(substr($kleur,4,2)));
imagecolortransparent($rounded_image,$wordt_transparant);
imagefill($rounded_image,0,0,$de_kleur);
imagefilledellipse($rounded_image,$vorm_afbeelding,$vorm_afbeelding,$vorm_afbeelding*2,$vorm_afbeelding*2,$wordt_transparant);
imagecopymerge($rond_plaatje,$rounded_image,0,0,0,0,$vorm_afbeelding,$vorm_afbeelding,100);
imagecopymerge($rond_plaatje,$rounded_image,$ronde_afbeelding_width-$vorm_afbeelding,0,$vorm_afbeelding,0,$vorm_afbeelding,$vorm_afbeelding,100);
imagecopymerge($rond_plaatje,$rounded_image,0,$ronde_afbeelding_height-$vorm_afbeelding,0,$vorm_afbeelding,$vorm_afbeelding,$vorm_afbeelding,100);
imagecopymerge($rond_plaatje,$rounded_image,$ronde_afbeelding_width-$vorm_afbeelding,$ronde_afbeelding_height-$vorm_afbeelding,$vorm_afbeelding,$vorm_afbeelding,$vorm_afbeelding,$vorm_afbeelding,100);
header('Content-type: image/png');
imagepng($rond_plaatje);
?>