我想在每张图片的底部添加10px高度的底部边框,而无需调整原始图像的大小。
例如:我有一个jpg 300X200 px,我在底部添加了10 px高度的黑色边框,我的图像现在是带有黑色边框的300X210。
感谢您的帮助
答案 0 :(得分:2)
函数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);
}
答案 1 :(得分:1)
这是一个绘制边框的代码示例。我使用GET
变量来调用图像。
例如,如果您将此代码放在images文件夹中,则可以调用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);
}
?>