基本上,我有一個上下文,我不能編程色調圖像,但我可以改變它的alpha值。通過一些實驗,我發現我可以將圖像的紅色,藍色和綠色版本與特定的alpha值疊加,以生成各種顏色。但是,我想知道是否有可能通過這種方法實現真正的RGB表示?如果是這樣,那麼將紅色,藍色和綠色圖層的RGB值轉換爲不同的alpha值的公式是什麼?阿爾法混合紅色,藍色和綠色圖像產生一個圖像有色任何rgb值?
1
A
回答
3
阿爾法組合的基本的「方程」是:
alpha * (R1,G1,B1) + (1-alpha) * (R2,G2,B2)
當你有三層帶alpha你實際上結合4層(第四之一是黑色),以使最終的顏色是:
alpha1 * (R1,G1,B1) + (1-alpha1) * (
alpha2 * (R2,G2,B2) + (1-alpha2) * (
alpha3 * (R3,G3,B3) + (1-alpha2) * (0,0,0)))
只要你有每個層上的相同的圖像和層1是紅色通道(G1 = B1 = 0)和二層是綠色和三層是藍色你得到:
(alpha1 * R, (1-alpha1)*alpha2 * G, (1-alpha1)*(1-alpha2)*alpha3 * B)
對於白色像素,你可以做任何可能的顏色。對於黑色像素,除黑色外無法做任何事情。對於任何其他像素,您受R,G和B的值限制。
假設您想在當前顏色爲(R,G,B)的像素處實現(Rd,Gd,Bd),則你將不得不選擇:
alpha1 = Rd/R
alpha2 = Gd/(G*(1-alpha1))
alpha3 = Bd/(B*(1-alpha1)*(1-alpha2))
的問題是,阿爾法通常只能在0和1之間。因此,舉例來說,如果路> [R有什麼可以做。
如果您可以控制混合功能(例如,在Photoshop中),則可以做得更好。
0
我不認爲這是可能的,如果我正確地理解你。
如果對於某個像素,圖像的紅色值爲0.5,則可以將其與(典型)範圍[0,1]中的alpha組合以形成任何值,包括0.5,但包括0.5你不能超越,得到例如作爲輸出值的0.6左右。
0
如果您想創建混合在一起的3個圖層疊加到原始圖像上,這很有可能。這是一個指向Paint Shop Pro中的函數來執行硬件部分的Python腳本的鏈接。
http://pixelnook.home.comcast.net/~pixelnook/SplitToRGB.htm
如果您需要更多的細節,發表評論,我會盡力以後,以填補進去。
相關問題
- 1. 刪除圖像的藍色和綠色
- 2. 如何打印其中一個像素的紅色,綠色和藍色值
- 3. iOS:UIColor不尊重紅色,綠色,阿爾法,藍色。顯示其他顏色?
- 4. 如何將JPG圖像讀入3個矩陣:紅色,綠色,藍色?
- 5. 爲醫學成像創建紅藍綠色的色彩圖嗎?
- 6. 如何從rgb/rgba字符串獲取紅色的綠色和藍色值?
- 7. 使用Color.brighter方法打印紅色,綠色和藍色值
- 8. 處理js紅色()綠色()藍色()
- 9. 疊加紅色/綠色圖像中的R用圖像()或rasterImage()
- 10. rgba字符串分開的紅色綠色藍色和alpha值
- 11. 以紅色,綠色或藍色水平繪製的圖形
- 12. RGBApixel'沒有成員名爲...紅色藍色和綠色
- 13. 值紅色/黃色/綠色(如何?)
- 14. 如何僅使用Java或Processing從圖像中檢測單個顏色,如紅色,藍色或綠色?
- 15. 在圖像上創建紅色和綠色點
- 16. 像油漆一樣添加顏色(顏色)(藍色+黃色=綠色等)
- 17. 計算以紅色,藍色和黃色爲原色的混合顏色的RGB代碼
- 18. 如何從java中的灰度值獲取紅色,綠色和藍色值?
- 19. as3增加顏色的(紅色,綠色,藍色)
- 20. 如何在RGB圖像中將紅色與藍色交換並保持亮度?
- 21. iphone:如何從圖像中移除紅色? (RGB顏色)
- 22. Java BufferedImage單獨獲取紅色,綠色和藍色
- 23. 結合幾個圖像的RGB顏色
- 24. 轉換圖像爲3d綠色洋紅色眼鏡
- 25. 用於C++的顏色地圖庫,可將給定值轉換爲紅色,綠色和藍色值
- 26. 地塊所有紅色和綠色
- 27. Firefox drawImage着色圖像藍色
- 28. VP8在Android上的編碼/解碼結果在紅色,綠色和藍色方塊的黑白圖像
- 29. HTML/CSS圖像和顏色混合
- 30. 如何在使用OpenCV的圖像中交換藍色和綠色通道
因此,使用該公式,我將如何從一個我想要實現的RGB值中導出alpha1,alpha2和alpha3? 如果R = 0xAA,那麼alpha1 = 0xAA/0xFF? – Chris 2010-01-08 21:30:36
我編輯了我的答案。如果您認爲它是一個很好的答案,請考慮upvoting /檢查。 – 2010-01-08 21:56:17
我在photoshop上通過第3層圓圈互相嘗試並插入值。圓形顏色 r:0xff0000 g:0x00ff00 b:0x0000ff 如果我想要實現顏色值0xaa5588,則您的公式分別給出.69,.32,.78的alpha值。但是,這些分層不會產生適當的顏色,無論是在黑色還是白色背景下。這基本上是我試圖實現的場景。我也嘗試減去3個目標值中的最低值(0x55),並使用這些超過0xFF的新值,這些值越來越近,但並不完全相同。有什麼想法嗎? – Chris 2010-01-08 22:35:28