2009-05-07 190 views

回答

21

快速和骯髒的方法是重複RGB的每個組件的灰度強度。所以,如果您的灰度爲120,則會轉換爲RGB(120,120,120)。

這是快速和骯髒的,因爲您獲得的有效亮度取決於您正在使用的設備的R,G和B子像素的實際亮度。

7

灰度表示所有值具有相同的強度。將所有通道(以RGB形式)設置爲等於灰度值,並且您將獲得RGB黑白圖像。

+2

嗯,沒有。其實你不會有黑白圖像。你將有一個由各種灰色陰影組成的圖像。 在較低的級別,實際像素將由紅色,綠色和藍色點組成,其亮度級別使得從遠處觀看此圖像的人將看到中性圖像。採取眼睛循環,並看看顯示器上名義上的灰色像素。您將看到紅色,綠色和藍色點的組合。 – 2009-05-07 17:52:48

+0

你是正確的,在屏幕上的百張圖像將由所有的RGB組成的看着maginification。所以所有的顏色都會在屏幕上呈現。我很難理解「你將會擁有由各種灰度組成的圖像」與灰度圖像有何不同。 – Erik 2009-05-15 20:12:13

+1

Erik,它沒有,但「灰度圖像」與「黑白圖像」(僅有兩種顏色)有很大不同。 – Aistina 2009-08-13 13:05:16

4

無論是否將R,G和B設置爲每個像素的相同值(灰度值),都可以獲得正確的灰度陰影?

+2

不完全。這取決於你將如何查看顏色。您的顯示器或打印機如何校準?你會看到什麼樣的觀看環境?如果將打印顏色,您的打印機是如何校準的?打印機和任何ICC配置文件都採用了哪些設置?白點?什麼光源用於查看打印?陽光? D50模擬器燈泡?鎢燈? 對於合理的近似度,R = G = B =灰度值是一個好的開始。它會讓你接近。 – 2009-05-07 16:50:14

7

將灰度轉換爲RGB很簡單。簡單地使用R = G = B =灰度值。基本的想法是,顏色(如RGB在監視器上所看到的)是一種添加劑系統。

http://en.wikipedia.org/wiki/Additive_color

因此增加紅色到綠色的產率的黃色。添加一些藍色等量的混合物,並獲得中性色。完全在[紅色,綠色,藍色] = [255 255 255]產生白色。 [0,0,0]產生顯示器黑色。當R = G = B時,中間值全部相等將產生給定灰度級的標稱中性色。

一個小問題是取決於你如何查看顏色,它可能不是完全中性的。這將取決於您的顯示器(或打印機)是如何校準的。從這一點我們可以瞭解到有趣的色彩科學深度。我會在這裏停下來。

25

如果你有一個可變的灰度值,並希望生產形式0x00RRGGBB一個新值,然後一個快速的方法來做到這一點是:

int rgb = grey * 0x00010101; 
在您選擇的語言

或同等學歷。

+4

+1直接乘法。本能是潛入位移和按位或,但這是一個簡單得多,只是工程。 – 2009-08-13 15:25:49

+1

或'rgb = grey << 16 |灰色<< 8 | grey',其中'<<'是帶符號的左移運算符,'|'是按位包含的OR。 – sp00m 2015-05-13 15:47:32

相關問題