PHP ImageMagick - 背景颜色

图像文本的背景颜色是指其背景的颜色。 使用合适的颜色来补充图像或文本的上下文有助于提高可读性,甚至更容易扫描。

例如,在下图中,我们可以看到"TUTORIALS POINT"写在朴素的背景上,可读性不太好。 为此元素选择合适的背景颜色可以提高其可见性。

PHP Imagemagick 背景颜色

如果我们看一下下图,我们可以发现这比上一张图像更具可读性,主要原因是它的背景颜色。

PHP Imagemagick 背景颜色

在下面的部分中,我们将学习如何识别图像的背景颜色,以及如何设置图像的背景颜色。

识别背景颜色

要使用 ImageMagick 识别图像的背景颜色,我们有一个名为 'getImageBackgroundColor()' 的方法。 如果图像中未指定或未找到任何内容,则默认背景颜色为"white"白色。

语法

public Imagick :: getImageBackgroundColor() :  ImagickPixel

该方法不带任何参数。 返回值采用 RGB 三元组的形式,它是一个三元素行向量。 每个元素指定所选颜色的红色、绿色和蓝色分量。 因此,根据该三元组,用户将能够识别背景中存在的颜色。

示例

以下示例演示如何使用 PHP 中的 `getImageBackgroundColor()` 方法获取图像的背景颜色。 要执行代码,您需要一个本地服务器环境,例如 XAMPP。

代码首先创建一个 Imagick 对象,然后使用此函数检索背景颜色。 最后,它会在服务器上打印出该颜色的 RGB 三元组表示形式。

<?php
   //creating a new imagick object //
   $img=new Imagick($_SERVER['DOCUMENT_ROOT'].'/test/image.jpg');
   $color=new ImagickPixel($img->getImageBackgroundColor) ;//Get the Background Color
   $colorInfo = $color->getColorAsString (); //Get the Color from ImagickPixel
   echo $colorInfo; //display colorinfo as output
?>

假设以下是程序中的输入图像(image.jpg)−

识别背景颜色

输出

srgb(0, 0, 0)

得到的输出是srgb(0,0,0),即'black'黑色。

设置背景颜色

在某些情况下,我们需要设置图像的背景颜色,尤其是带有文本的图像以增加其可读性。 要在 PHP 中设置图像的背景颜色,我们使用方法'setImageBackgroundColor()'。

语法

该方法的语法如下所示 −

public Imagick::setImageBackgroundColor(mixed $background): bool

此方法接受'background'作为参数,其中包含所需的背景颜色。 执行成功后返回true并生成指定背景颜色的图像。

示例

此 PHP 代码片段展示了如何使用 `setImageBackgroundColor()` 函数设置图像的背景颜色 image.

  • 首先,创建一个新的 Imagick 对象,并将图像作为输入读入。 然后,使用内置函数setImageBackgroundColor()设置背景颜色。

  • 输出可以使用 `echo` 显示在服务器上,也可以使用 `writeImage()` 保存在本地。

<?php
   $image=new Imagick($_SERVER['DOCUMENT_ROOT']."/test/image.png");
   $image->setImageBackgroundColor('black');
   $image->setImageAlphaChannel(100);
   $image->writeImage($_SERVER['DOCUMENT_ROOT']."/test/newimage.png");
?>

假设以下是程序中的输入图像(image.png)−

设置背景颜色

输出

设置背景颜色