PHP Imagick::borderImage()方法
Imagick::borderImage() 方法是一个PHP内置函数,用于在图像周围绘制边框。该方法在指定的颜色周围添加一个边框。
语法
bool Imagick::borderImage ( bordercolor,width, $height )
参数
此函数接受三个参数,这些参数如上所列,并在下面进行描述:
$bordercolor: 此参数可以是一个ImagickPixel对象,也可以是一个包含边框颜色的字符串。
$width: 边框宽度由$width选项控制。
$height: 此参数用于指定边框的高度。
返回类型
PHP中边框图像函数的返回类型是布尔类型,这意味着此函数的返回类型可能是true或false,具体取决于操作的成功与否。如果成功创建围绕指定输入图像的边框,边框图像函数的返回类型为true,否则返回类型被更改为false。
代码
<?php
function borderImage(imagePath,color, width,height) {
imagick = new \Imagick(realpath(imagePath));
imagick->borderImage(color, width,height);
header("Content-Type: image/jpg");
echo $imagick->getImageBlob();
}
?>
输出:
示例:
class QRimage {
//----------------------------------------------------------------------
public static function png(frame,filename = false, pixelPerPoint = 4,outerFrame = 4,save = TRUE,print = false)
{
image = self::image(frame, pixelPerPoint,outerFrame, "png", 85, filename,save, print);
}
//----------------------------------------------------------------------
public static function jpg(frame, filename = false,pixelPerPoint = 8, outerFrame = 4,q = 85,save = TRUE,print = false)
{
image = self::image(frame, pixelPerPoint,outerFrame, "jpeg", q,filename, save,print);
}
//----------------------------------------------------------------------
private static function image(frame,pixelPerPoint = 4, outerFrame = 4,format = "png", quality = 85,filename = FALSE, save = TRUE,print = false)
{
imgH = count(frame);
imgW = strlen(frame[0]);
col[0] = new \ImagickPixel("white");col[1] = new \ImagickPixel("black");
image = new \Imagick();image->newImage(imgW,imgH, col[0]);image->setCompressionQuality(quality);image->setImageFormat(format);draw = new \ImagickDraw();
draw->setFillColor(col[1]);
for(y=0;y<imgH;y++) {
for(x=0;x<imgW;x++) {
if (frame[y][x] == '1') {draw->point(x,y);
}
}
}
image->drawImage(draw);
image->borderImage(col[0],outerFrame,outerFrame);
image->scaleImage( (imgW + 2*outerFrame) *pixelPerPoint, 0 );
if(save){
if(filename === false){
throw new Exception("QR Code filename can't be empty");
}
image->writeImages(filename, true);
}
if(print){
Header("Content-type: image/" .format);
echo $image;
}
}
}
输出:
在这个示例中,我们看到了PHP中使用Border image函数以及其他主要的PHP函数,比如设置压缩质量、设置图像格式、设置填充颜色等。在这个示例中,我们按照以下顺序进行操作:首先创建两个图像像素对象,一个是白色,另一个是黑色。在创建这两个图像像素对象之后,我们使用draw image函数绘制基本图像。在成功创建图像之后,下一个函数是Border image函数,该函数用于用我们指定的特定颜色填充图像的边框。在成功填充边框颜色之后,下一步是使用写入图像函数对该图像进行缩放并保存结果。
示例2:
protected function _save_function(extension, &quality)
{
switch (strtolower(extension)) {
case 'jpg':
case 'jpeg':type = IMAGETYPE_JPEG;
if (this->type == "png" ||this->type == "gif") {
this->im->borderImage(new ImagickPixel("white"), 1, 1);
}this->im->setImageFormat('jpeg');
break;
case 'gif':
type = IMAGETYPE_GIF;this->im->setImageFormat('gif');
break;
case 'png':
type = IMAGETYPE_PNG;this->im->setImageFormat('png');
break;
default:
throw new waException(_ws(sprintf('Installed ImageMagick does not support %s images', extension)));
break;
}quality = quality - 5;
returntype;
}
输出:
这是另一个示例,我们在其中使用了border Image函数来区分输入图像文件的不同扩展类型。在这个示例中,我们根据输入图像文件的扩展名有不同的情况,比如假设输入图像文件的扩展名是gif格式、PNG格式或者是JPG或JPEG格式。根据输入图像扩展名,我们为每个情况定义了不同的指令集,并且我们使用了PHP提供的border-image函数来改变具有不同扩展类型的输入图像的边框颜色,如上面所示的示例中所指定的。
因此,本文介绍了如何在PHP中使用border Image函数来改变输入图像的边框颜色。我们可以通过将特定颜色作为参数传递给我们的border Image函数来根据需要更改输入图像的边框颜色。