PHP ImageMagick - 背景顏色



影像文字的背景顏色指的是其背景的顏色。使用與影像或文字上下文相符的合適顏色有助於提高可讀性,甚至更容易掃描。

例如,在下圖中,我們可以看到“TUTORIALS POINT”寫在純色背景上,可讀性不高。為該元素選擇合適的背景顏色可以提高其可見性。

PHP Imagemagick Background Color

如果我們看下圖,我們會發現它比上一張圖片更易讀,其主要原因是它的背景顏色。

PHP Imagemagick Background Color

在接下來的章節中,我們將學習如何識別影像的背景顏色,以及如何設定影像的背景顏色。

識別背景顏色

要使用 ImageMagick 識別影像的背景顏色,我們有一個名為‘getImageBackgroundColor()’的方法。如果影像中未指定或找不到任何內容,則預設背景顏色為“白色”。

語法

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

Identifying the Background-Color

輸出

srgb(0, 0, 0)

獲得的輸出為 srgb(0,0,0),即“黑色”。

設定背景顏色

在某些情況下,我們需要設定影像的背景顏色,特別是包含文字的影像,以提高其可讀性。要在 PHP 中設定影像的背景顏色,我們使用‘setImageBackgroundColor()’方法。

語法

此方法的語法如下所示:

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

此方法接受'background'作為引數,其中包含所需的背景顏色。成功執行後,它將返回 true 並生成具有指定背景顏色的影像。

示例

此 PHP 程式碼片段演示瞭如何使用`setImageBackgroundColor()`函式設定影像的背景顏色。

  • 首先,建立一個新的 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) −

Setting a Background Color

輸出

Setting a Background Color
廣告
© . All rights reserved.