[英]PHP ImageMagick change color in every frame Animated Gif
我正在嘗試將動畫GIF中的RGB值更改為另一個RGB值。 但是,在我所有的嘗試中,它只是在一幀而不是所有幀中更改顏色。
$imgif = new Imagick(HOME_PATH.'/images/6.gif');
$target = 'rgba(238,131,41, 1.0)';
$fill = 'rgba(163,145,144, 1.0)';
$fuzz = 0.05 * $imgif->getQuantumRange()['quantumRangeLong'];
$imgif->opaquePaintImage($target, $fill, $fuzz, false, Imagick::CHANNEL_DEFAULT);
$imgifblob = $imgif->getImagesBlob();
無論如何,是否有索引整個GIF的顏色並對其進行更改? 我不知所措,因為我對圖像處理沒有太多經驗。
抱歉,我不太了解Imagick。 但是,這是在Imagemagick命令行中執行的方法。 您可能必須在Imagick中循環瀏覽每個幀,因為它可能不允許處理多幀圖像。 但是也許使用readImages可以工作。 請參閱https://www.php.net/manual/zh-CN/imagick.readimages.php ,在其中您將gif中的所有幀都指定為6.gif [0--1],即從幀0到最后一個的所有幀。框架-1。 對不起,我就是不知道。 一位Imagick專家也許可以提供進一步的幫助。
輸入:
convert bunny_anim.gif -coalesce -fuzz 10% -fill red -opaque "rgb(51,77,204)" -layers optimize new_bunny.gif
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.