为在 PHP 中创建的图像添加边框

Posted

技术标签:

【中文标题】为在 PHP 中创建的图像添加边框【英文标题】:Give border to image created in PHP 【发布时间】:2010-06-09 13:04:56 【问题描述】:

如何为使用 php 创建的图像添加边框?

【问题讨论】:

how to add image-border around an image? 的可能重复项 【参考方案1】:
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); 
     

那么用法就这么干了。

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

【讨论】:

错误。您要求 $color 但使用了 $color_black。 这是使用 PHP header("content-type: image/jpeg"); 显示图像的正确方法imagejpeg($image); 我们需要查看您的整个代码以查看您是否发送了正确的 haders 等。 我使用了你的代码,只有顶部、右侧和左侧的边框,但底部没有。谁能帮帮我?【参考方案2】:

我没有对此进行测试,但我认为它可以解决问题。

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);

【讨论】:

【参考方案3】:

使用 ImageMagick:

bool Imagick::borderImage ( mixed $bordercolor , int $width , int $height )

用由bordercolor ImagickPixel 对象定义的颜色的边框包围图像。

【讨论】:

以上是关于为在 PHP 中创建的图像添加边框的主要内容,如果未能解决你的问题,请参考以下文章

使用imagick PHP在png图像周围添加边框

如何在opencv中为图像添加边框,边框颜色必须与图像颜色相同

带纹理背景的 CSS 锯齿形边框

如何将边框图像添加到动态创建的图像?

如何为图像添加边框而不是图像视图?

如何在winform面板的边框上添加图像?