回答
var n:Number = 1/3;
var matrix:Array = [n,n,n,0,0,
n,n,n,0,0,
n,n,n,0,0,
0,0,0,1,0];
var cmf:ColorMatrixFilter = new ColorMatrixFilter(matrix);
bitmap.filters = [cmf];
在一般情況下,假設你開始與RGB圖像,將其轉換爲HSI色彩空間,並使用我(強度)組件。
要將圖像轉換爲灰度圖,需要遍歷圖像緩衝區中的每個像素,並將R,G和B分量平均到一個實體中,然後複製三次以獲得新顏色。僞代碼(假設8位顏色):
for each pixel in buffer:
pixel.rgb = ((pixel.red + pixel.green + pixel.blue)/3) * 0x010101;
我相信你可以用Adobe的PixelBender做些事情來達到這個目的。
或者,強度有時被定義爲max(R,G,B)。 – Dima 2009-12-03 23:34:09
應用通過該方法爲DisplayObject包含您在黑色和白色想要的圖像創建的濾波器:
public static function createBlackAndWhiteFilter():ColorMatrixFilter {
var rLum:Number = 0.2225;
var gLum:Number = 0.7169;
var bLum:Number = 0.0606;
var bwMatrix:Array = [rLum, gLum, bLum, 0, 0, rLum, gLum, bLum, 0, 0, rLum, gLum, bLum, 0, 0, 0, 0, 0, 1, 0];
return new ColorMatrixFilter(bwMatrix);
}//createBlackAndWhiteFilter
即使我完全不理解,我也會試試這個! 但是: 對於具體數值代表什麼,爲什麼數組中有20個必需的值? 也許我不應該問很多,只是使用它...:-J – algro 2009-12-04 08:18:00
數組中的20個值是製作一個5x4的矩陣,它實際上與alecmce在同一個問題中發佈的矩陣幾乎相同,只是寫了它在一條線上。不同的值與我知道的每種組分顏色的不同光強度有關。所以你在不同的措施中減少每種顏色的強度,使每個顏色變成灰色陰影。 – LopSae 2009-12-05 03:06:11
@alecmce:我們不能評論彼此的答案,因爲我們還沒有50個聲望(這限制了我們只對自己的答案發表評論)。是的,大部分答案都是相同的,我剛纔發現了這個答案。對於那個很抱歉。我發現真正令人困惑的是,使用矩陣與1/3,與1,我的矩陣產生完全相同的效果,沒有不同的陰影,沒有不同的強度......所以實際值真的很重要的東西? – LopSae 2009-12-05 03:23:32
- 1. CSS:如何將彩色圖像變成灰色或黑色/白色圖像
- 2. 如何在Android中將彩色圖像製作成黑白色
- 3. Java OpenCV:如何將彩色圖像轉換爲黑白圖像?
- 4. 使圖像變成黑色和白色?
- 5. 如何識別圖像是黑白還是彩色圖像?
- 6. 確定圖像是黑白圖像還是彩色圖像
- 7. jQuery的 - 黑白圖像的彩色圖像(懸停)
- 8. 如何將彩色TIFF圖像轉換爲黑白使用BitMiracle.LibTiff.Silverlight.dll
- 9. 如何在iOS 6.0中將彩色圖像更改爲黑白圖像?
- 10. 如何使用PHP將「真彩色」圖像轉換爲「黑白」圖像?
- 11. 如何將彩色圖像轉換爲純黑白圖像(0-255格式)
- 12. 轉換彩色圖像轉換成黑白圖像使用PHP GD庫
- 13. Python圖像庫黑白兩色圖像
- 14. Zend_PDF drawImage將圖像變成黑色
- 15. 將彩色指紋圖像轉換爲黑白
- 16. 如何將彩色圖像位圖轉換爲android中的黑白圖像位圖?
- 17. 有彩色圖像的SURF_CUDA實現嗎?
- 18. 使圖像變成黑白懸停
- 19. 漸變彩色圖像
- 20. 有沒有什麼辦法可以檢測圖像是黑白圖像還是彩色圖像?
- 21. 從黑白到彩色的CSS過渡圖像
- 22. 將粒子分割成黑白圖像
- 23. 如何將圖像變成黑/白,然後在Safari上懸停着色?
- 24. 如何將圖像的顏色更改爲android中的黑白圖像
- 25. 如何將kinect的深度圖像與彩色圖像對齊
- 26. jcrop變成透明圖像黑色
- 27. Java旋轉圖像變成全黑色?
- 28. PNG圖像呈現黑色
- 29. OpenGL ES着色器將彩色圖像轉換爲黑白紅外?
- 30. SDL生成黑色圖像
不是LopSae和我的完全一樣,只是它調整了光度值?爲什麼我不能評論LopSae的答案?非常奇怪...... 對於矩陣中的每個值所做的操作,請參閱: http://livedocs.adobe.com/flash/9.0/ActionScriptLangRefV3/flash/filters/ColorMatrixFilter.html – alecmce 2009-12-04 10:29:17
@LopSae - 我是新的StackOverflow,還沒有完全制定出所有的特質,謝謝! ;)您看到的差異可能非常微妙,取決於源圖像。如果您使用的是相對明亮,大膽的顏色的測試圖像,那麼與具有微妙陰影的圖像相比,不同的值將具有更少的可見效果... – alecmce 2009-12-05 15:16:20
它的數學並不太難......對於每個像素,它將採用像素顏色的紅色,綠色和藍色分量,並將它們乘以矩陣中的第一個第二個和第三個元素(在我的例子中爲1/3,在您的情況下爲0.2,0.7,0.1),將它們加在一起並把這個結果作爲紅色值。然後,它採用與像素顏色相同的分量,並將它們乘以矩陣中的第六,第七和第八個元素,然後將它們設置爲綠色。類似於第11,12和13日的藍色。這會產生灰度,因爲在結果中紅色,綠色和藍色的部分是相同的。 – alecmce 2009-12-05 15:20:14