當前位置: 首頁>>編程示例 >>用法及示例精選 >>正文


PHP Imagick transparentPaintImage()用法及代碼示例

Imagick::transparentPaintImage()函數是PHP中的一個內置函數,可將像素繪製為透明。將與目標顏色匹配的像素繪製為透明。如果Imagick已針對ImageMagick 6.3.8或更高版本進行編譯,則此方法可用。

用法:

bool Imagick::transparentPaintImage ( mixed $target, float $alpha, float $fuzz, bool $invert )

參數:該函數接受上述和以下所述的四個參數:


  • $target:要繪製透明的目標顏色。
  • $alpha:透明度範圍:1.0是完全不透明的,而0.0是完全透明的。
  • $fuzz:如果為TRUE,則繪製與目標顏色不匹配的任何像素。
  • $invert:圖像白點。
    返回值:該函數返回真正成功。

以下示例程序旨在說明PHP中的Imagick::transparentPaintImage()函數:

例:

<?php 
//$source="gfg_350X350.png"; 
$source="https://media.geeksforgeeks.org/wp-content/uploads/20190809013546/gfg_350X350.png"; 
$target="transpaintimg.png"; 
$color="rgb(39, 194, 255)"; 
$alpha="0.5"; 
$fuzz="0.1"; 
$inverse="normal"; 
$imagick = new \Imagick(realpath($source)); 
   
    //Need to be in a format that supports transparency 
    $imagick->setimageformat('png'); 
   
    $imagick->transparentPaintImage( 
        $color, $alpha, $fuzz * \Imagick::getQuantum(), $inverse
    ); 
   
    //Not required, but helps tidy up left over pixels 
    $imagick->despeckleimage(); 
       
    $canvas = new Imagick(); 
    $canvas->newPseudoImage( 
        $imagick->getImageWidth(), 
        $imagick->getImageHeight(), 
        "pattern:checkerboard"
    ); 
       
    $canvas->compositeimage($imagick, \Imagick::COMPOSITE_ATOP, 0, 0); 
    $canvas->setImageFormat('png'); 
   
    header("Content-Type: image/png"); 
    echo $canvas->getImageBlob(); 
    $canvas->WriteImage($target); 
?>

輸出:

參考: https://www.php.net/manual/en/imagick.transparentpaintimage.php



相關用法


注:本文由純淨天空篩選整理自VigneshKannan3大神的英文原創作品 PHP | Imagick transparentPaintImage() Function。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。