回答
如果你的意思是在PHP中使用GD庫,你應該給上imagefilter()
步驟的檢查有:
- 開始用PNG圖片,用白色的內,阿爾法外。
- 使用
imagefilter($img, IMG_FILTER_COLORIZE, 0, 255, 0))
其中0,255,0是您的RGB顏色(本例中爲鮮綠色) - 保存alpha並打印輸出結果。
編輯,工作代碼和澄清。
我的意思是,使用alpha的黑色線的外部,和白色INSIDE。這裏的樣本圖像:
而這裏的工作代碼着色白色部分:
header('Content-Type: image/png');
/* RGB of your inside color */
$rgb = array(0,0,255);
/* Your file */
$file="../test.png";
/* Negative values, don't edit */
$rgb = array(255-$rgb[0],255-$rgb[1],255-$rgb[2]);
$im = imagecreatefrompng($file);
imagefilter($im, IMG_FILTER_NEGATE);
imagefilter($im, IMG_FILTER_COLORIZE, $rgb[0], $rgb[1], $rgb[2]);
imagefilter($im, IMG_FILTER_NEGATE);
imagealphablending($im, false);
imagesavealpha($im, true);
imagepng($im);
imagedestroy($im);
注:我們必須否定值,因爲彩色化只適用於非白色部分。我們可以通過使用黑色的白色邊框圖像來解決這個問題。
注意:此代碼僅適用於黑色邊框和白色內部圖像。
我試過這個,但它也改變了背景(透明)爲綠色。我應該讓背景變白嗎? –
檢查版本,工作代碼和說明 – Touki
在使用BRIGHTNESS和高負值之前再做一個過濾步驟以確保圖像僅包含純黑色(#000)和純白色(#FFF)色彩也是很好的做法。無論文檔如何,使用此濾鏡可以使用-10000值來避免半灰色像素。比COLORIZE更有意義,您設置的顏色將正確着色黑色區域。這個過程被一些php庫用來應用黑白位掩碼來使圖像的自定義區域透明。 – Wh1T3h4Ck5
我想答案應該是有圖像的多個版本,然後加載取決於所選擇的顏色正確的圖像?
你可以使用switch語句來加載正確的圖像
//get selected colour
switch ($colour) {
case "red":
echo "<img src='RED IMAGE' ";
break;
case "blue":
echo "<img src='blue IMAGE' ";
break;
case "green":
echo "<img src='green IMAGE' ";
break;
}
希望這有助於。
如果用戶想要選擇更淺/更深的紅色?我無法制作1千萬個圖像。這就是爲什麼我想要另一個解決方案(我認爲使用GD庫)。 –
那麼你應該讓你的問題更清楚。 – devsnd
爲什麼這只是被投票?我知道這不是正確的解決方案,但問題並未指定他們需要每種可能的顏色組合。 –
<?php
header("Content-type: image/png");
$im = imagecreate(200, 200)
imagefill($im, 0, 0, $red);
// above could come from an uploaded image
// find a blue in the image
$newblue = imagecolorclosest($im, 0, 0, 255);
// change it to green
imagecolorset($im, $newblue, 0, 255, 0);
imagepng($im);
imagedestroy($im);
?php>
在這裏,您可以找到最接近藍色的顏色並用綠色替換。
我嘗試這樣做:
<?php
$imgname = "1.gif";
$im = imagecreatefromgif ($imgname);
$index = imagecolorexact ($im,0,128,0);
imagecolorset($im,$index,240,255,0);
$imgname = "result.gif";
imagegif($im,$imgname);
?>
<img src="result.gif">
,而不是替換每個綠色像素,我得到這個(球衣顏色沒有改變),:
的- 1. 用另一種顏色替換圖像中的特定顏色
- 2. 用另一種顏色替換圖像中的某種顏色Matlab
- 3. 用CSS3中的圖像中的另一種顏色替換顏色
- 4. 用另一種顏色替換圖像中的某個顏色範圍Matlab
- 5. 用另一種顏色替換uiimage中的顏色
- 6. 在NSImage中替換另一種顏色
- 7. 用圖像/精靈中的另一個替換特定顏色
- 8. 在圖像上的PHP顏色替換
- 9. JAVA:使用ColorModel替換另一種顏色
- 10. 需要更快的方法來替換基於另一種顏色的圖像中的顏色
- 11. 用Lockbits替換圖像的顏色
- 12. 如何替換圖像中的顏色?
- 13. 將ShapeDrawable中的單色(黑色)替換爲Android中的另一種顏色
- 14. 用另一種顏色更改所有像素的顏色
- 15. 使用CSS給一個黑色的圖標另一種顏色
- 16. 背景顏色50%一種顏色和50%另一種顏色
- 17. 如何將一種顏色替換爲eps文件的每個對象中的另一種顏色?
- 18. 如何替換圖像的顏色?
- 19. 實時替換圖像上的顏色
- 20. PHP和帆布像素顏色替換
- 21. 確定一種顏色「圖像中單個顏色的多少」
- 22. 在UIImage(或其衍生產品)中,如何將一種顏色替換爲另一種顏色?
- 23. 您可以在位圖圖像中將一種顏色更改爲另一種顏色嗎?
- 24. 從一種顏色到另一種顏色的插值
- 25. 使用交替顏色繪製圖像
- 26. 一半的信是一種顏色,另一半另一種顏色
- 27. 將某些像素RGB顏色到另一種顏色
- 28. 從一種特定顏色到另一種顏色的研究生matlab繪圖
- 29. 我想用另一種顏色交換圖像內的特定顏色。有沒有可能的方法?
- 30. 使用PHP檢測圖像的顏色
可能重複[我可以換顏色在圖像中使用GD庫在PHP?](http://stackoverflow.com/questions/456044/can-i-swap-colors-in-image-using-gd-library-in-php) – bfavaretto