2016-11-26 18 views
1

我使用PHP imagick延長更換背景像素,但我不知道如何使用draw方法來改變圖像的背景顏色。如何使用白色像素使用PHP ImageMagick的抽籤方法

enter image description here

+0

我正在學習從http://engblog.polyvore.com/2013/05/under-hood-how-we-mask-our-images.html polyvore工程的博客。我已經完成了第一步e.i.調整,但在第二步我弄糊塗如何做到這一點。請通過鏈接瞭解我想問什麼。 –

+0

您需要添加一些我們可以評估的代碼。 – Surt

回答

1

你關注的polyvore教程說

接下來,我們用白色更換背景,開始在像素是 是在2,2 XY位置。我們從那裏開始,因爲它幾乎是 肯定是背景的一部分,而不是產品。 ImageMagick的具有 繪圖命令替換那些顏色與新的顏色 開始像素相同的像素。我們使用Draw來替換背景像素 (與我們的起始像素顏色相同)和白色像素。我們也 使用繪製一個模糊的因素,使得它也取代那些對起始像素佔微妙的漸變 和變化的背景 類似顏色的像素。

您呈現的圖像已經有白色背景,所以很明顯,您已成功完成此步驟。剩下的就是將白色像素轉換爲透明。從命令行,這是

magick UQ1U4.png -fill none -fuzz 5% -draw 'color 2,2 floodfill' out.png 

這使得那就是顏色一樣的(2,2)像素(左上角像素附近)透明(色「無」)的任何像素。 Floodfill重新着色任何與目標像素的顏色相匹配的像素,並且與目標像素或另一個正在重新着色的像素相鄰。

您可以通過PHP IMagick接口做同樣的操作:

bool Imagick::floodFillPaintImage (mixed $fill , float $fuzz , mixed $target , int $x , int $y , bool $invert [, int $channel =magick::CHANNEL_DEFAULT ])' 

使用相同的參數作爲命令行。

如果您有ImageMagick的一箇舊版本,使用convert代替magick。如果您在Windows上,請使用%%而不是單個%

+0

先生, 'bool的Imagick :: colorFloodfillImage(混合$填充,浮子$起毛,混合$ BORDERCOLOR,INT $ X,INT $ Y)' 已被棄用(<6.3.8)。因此,而不是此我用 '布爾Imagick :: floodFillPaintImage(混合$填充,浮子$起毛,混合$目標,INT $ X,INT $ Y,布爾$倒置[摘要$信道= Imagick :: CHANNEL_DEFAULT])' 和我的問題解決了。 –

+0

@KusumGupta謝謝,我用最新的信息編輯了答案。 –

相關問題