在图像上添加边框而不修改原始图像(GD php)

发布于 2024-11-03 04:58:03 字数 136 浏览 0 评论 0原文

我想在每个图像的底部添加 10px 高度的底部边框,而不调整原始图像的大小。

示例:我有一张 300X200 像素的 jpg,我在底部添加了 10 像素高度的黑色边框,我的图像现在是 300X210 带黑色边框。

感谢您的帮助

I would like to add bottom border of 10px height on bottom of every image WITHOUT resizing the original image.

Exemple: i have one jpg 300X200 px, i add black border of 10 px height on the bottom, my image is now 300X210 with black border.

Thanks for your help

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

甜是你 2024-11-10 04:58:03

函数drawBorder代码看起来错误。应如下所示:

function drawBorder(&$img, &$color, $thickness) {
  $x = ImageSX($img);
  $y = ImageSY($img);
  for($i = 0; $i < $thickness; $i++)
    ImageRectangle($img, $i, $i, $x--, $y--, $color);
}

Function drawBorder code looks wrong. Should be as follows:

function drawBorder(&$img, &$color, $thickness) {
  $x = ImageSX($img);
  $y = ImageSY($img);
  for($i = 0; $i < $thickness; $i++)
    ImageRectangle($img, $i, $i, $x--, $y--, $color);
}
缱倦旧时光 2024-11-10 04:58:03

这是绘制边框的代码示例。我使用 GET 变量来调用图像。

例如,如果您将此代码放入图像文件夹中,则可以调用 example.org/images/resize.php?path=image.jpg,而无需修改原始图像。您甚至可以使用 mod_rewrite (假设您使用的是 apache)来应用此过滤器。

但是,这可能会影响性能(即时执行),因此我建议至少在服务器上缓存图像,或者只是将它们保存到磁盘。

<?php 

$img = ImageCreateFromJPEG($_GET['path']); 

// Draw border 
$color_black = ImageColorAllocate($img, 0, 0, 0); 
drawBorder($img, $color_black, 10); 


// Output 
header('Content-type: image/jpeg'); 
ImageJPEG($img); 



// Draw a border 
function drawBorder(&$img, &$color, $thickness) 
{  
    $x = ImageSX($img); 
    $y = ImageSY($img); 

    for($i = 0; $i < $thickness; $i++) 
        ImageRectangle($img, 0, 0, $x, $y--, $color_black); 
} 

?>

Here is a code sample that will draw a border. I have used the GET variable to call the image.

If you for example put this code in your images folder, you can call example.org/images/resize.php?path=image.jpg, without modifying the original image. You can even use mod_rewrite (assuming you are using apache) to apply this filter.

However, this may affect the performance (doing it on the fly), so I recommend at least caching the images on the server, or just saving them to disk.

<?php 

$img = ImageCreateFromJPEG($_GET['path']); 

// Draw border 
$color_black = ImageColorAllocate($img, 0, 0, 0); 
drawBorder($img, $color_black, 10); 


// Output 
header('Content-type: image/jpeg'); 
ImageJPEG($img); 



// Draw a border 
function drawBorder(&$img, &$color, $thickness) 
{  
    $x = ImageSX($img); 
    $y = ImageSY($img); 

    for($i = 0; $i < $thickness; $i++) 
        ImageRectangle($img, 0, 0, $x, $y--, $color_black); 
} 

?>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文