2010-06-09 11 views
6

Come si assegna un bordo a un'immagine creata utilizzando PHP?Assegna il bordo all'immagine creata in PHP

+0

possibile duplicato di [come aggiungere immagini bordo attorno a un'immagine?] (Http://stackoverflow.com/questions/1589550/how-to-add-image-border-around-an-image) – Gordon

risposta

11
function drawBorder(&$img, &$color, $thickness = 1) 
{ 
    $x1 = 0; 
    $y1 = 0; 
    $x2 = ImageSX($img) - 1; 
    $y2 = ImageSY($img) - 1; 

    for($i = 0; $i < $thickness; $i++) 
    { 
     ImageRectangle($img, $x1++, $y1++, $x2--, $y2--, $color); 
    } 
} 

Quindi l'utilizzo dovrebbe solo fare.

$color = imagecolorallocate($img, 255, 0, 0); 
drawBorder($img,$color, 255); 
+0

Errore. Hai chiesto $ color ma hai usato $ color_black. – nebkat

+0

Ive ha aggiornato il mio post, recensione pelase, errore di battitura minatore! – RobertPitt

+0

questo è il metodo giusto per visualizzare le immagini usando l'intestazione di PHP ("content-type: image/jpeg"); imagejpeg ($ image); – learner

2

Non ho provato questo, ma penso che farà il trucco.

function addBorder($image, $width, $height) 
{ 
    $gd = imagecreatetruecolor($width, $height); 

    for($i = 0; $i<$height; $i++) 
    { 
     // add left border 
     imagesetpixel($image,0,$i, imagecolorallocate($gd, 0,0,0)); 
     // add right border 
     imagesetpixel($image,$width-1,$i, imagecolorallocate($gd, 0,0,0)); 
    } 
    for($j = 0; $j<$width; $j++) 
    { 
     // add bottom border 
     imagesetpixel($image,$j,0, imagecolorallocate($gd, 0,0,0)); 
     // add top border 
     imagesetpixel($image,$j,$height-1, imagecolorallocate($gd, 0,0,0)); 
    } 

    return $image; 
} 

$image = //your image 
$width = //your iimage width 
$height = //your image height 


$image = addBorder($image, $width, $height); 
+0

ciao signore non funziona, l'immagine non viene visualizzata. – learner