Dibuix de línies amb GD
Dibuix de línies amb GD

 

En aquest capítol de dues pàgines veurem com podem dibuixar tot tipus de línies (normals, gruixudes, discontínues, puntejades ...) usant la llibreria GD de PHP. 
 

 

Taula de contingut

 

 

 

Dibuix de línies bàsiques

Per dibuixar una línia contínua de gruix 1 en una imatge creada amb GD, usarem la funció imageline, que funciona de la següent manera:

000 <? Php
001 imageline($im,$destral,$ai,$bx, for $,$col) ;
002 ?>
 


On els paràmetres que passem a la funció seran:

$Im. És l'identificat de la imatge que hem creat 
$ax. És la coordenada horitzontal del primer punt de la línia 

$ai. És la coordenada vertical del primer punt de la línia

$bx. És la coordenada horitzontal del segon punt de la línia 

$by. És la coordenada vertical del segon punt de la línia

$col. És el color de la línia

Anem a veure un exemple de línia:

000 <? Php
001 $im=@imagecreate(100, 100) or die("Error creant la imatge") ;
002 $fons imagecolorallocate($im255, 255, 255) ;
003 // blanc  
004 $línia imagecolorallocate($im, 0, 00)   // negre  
005 // Dibuixem la línia
006 imageline($im, 10, 10, 9090$línia)  ;
007 header("Content-type: image/png")  ;
008 imagepng($im)  
009 ?>
 

 
I aquí tenim el seu resultat: 
 

 

 

 

 

Dibuix de línies gruixudes

Per fer una línia de gruix diferent d'1, abans de dibuixar, usarem la funció imagesetthickness, que funciona de la següent manera:

000 imagesetthickness($im, $gruix)  ;


On els paràmetres que passem a la funció seran:

000 [b] $im [/ b ] 

- És el identificat de la imatge [b] $gruix [/b]  

- És el gruix en píxels de la línia

001  


Anem a veure un exemple de línia de 10 píxels:

000 <? Php
001 $im = @imagecreate(100, 100) or die("Error creant la imatge") ;
002 $fons = imagecolorallocate($im255, 255, 255)  // blanc
003 $línia imagecolorallocate($im, 0, 0, 0)  // negre  
004 // Canviem el gruix a 10
005 imagesetthickness($im, 10) ;
006 imagesetthickness($im10)  
007 imageline($im, 10, 109090$línia) ;
008 header("Content-type: image/png" ) ;
009 ?>
 


I aquí tenim el seu resultat: 
 


Finalment, per tornar a dibuixar línies normals, farem un imagesetthickness amb gruix.