在Java的AWT中,alpha(不透明度)使用從0(完全透明)到255(完全不透明)的值表示。如何正確地混合alpha值,例如實現淡入淡出效果?如果子元素相對於其父元素具有200的alpha值,並且父元素的alpha值爲100,那麼最終繪製的像素的alpha值是多少?如何混合alpha值?
1
A
回答
1
你對像素阿爾法值有多少控制?你在尋找什麼樣的淡入淡出效果?
不同的圖形系統默認情況下可能會實現不同的alpha操作。我覺得一個是最直觀的,因而通常是默認的是:
DestColor = DestColor * (1 - SourceAlpha) + SourceColor * SourceAlpha
DestAlpha left as-is
採用這種方案,源阿爾法只會影響到目標表面的顏色分量,而不是目標表面的α本身。
我不確定AWT是如何工作的,或者它是否能夠控制alpha混合操作的任何級別,但alpha可以在理論上以多種不同的方式應用。
1
我認爲這是正確的:200阿爾法child
means
blended = 200/255 * child + (1 - 200/255) * parent
我們已經習慣了這樣的像素值,但我們也可以插在相同的方式alpha通道。我們必須假裝的child
「真正的」阿爾法值爲255:
blended = 255 * 200/255 + 100 * (1 - 200/255)
child.alpha parent.alpha
這大約是222
This question也可能是有用的。
+0
這取決於您正在使用哪種混合功能。有很多(雖然看起來像最常見的那個......) – 2011-04-25 23:40:31
+0
這只是一個標準的線性插值。 – YXD 2011-04-25 23:41:04
相關問題
- 1. WebGL alpha混合
- 2. 背景Alpha混合
- 3. alpha混合在GTK
- 4. 預乘alpha混合
- 5. C#Alpha混合形式Alpha混合控制
- 6. 如何使混合JPG/PNG 8位alpha
- 7. 如何在DirectX上啓用Alpha混合?
- 8. 如何將曲面與多個alpha值混合?
- 9. 轉換ARBG與alpha混合
- 10. MFC CImage alpha混合出錯
- 11. OpenGL(libgdx) - 混合alpha地圖
- 12. Alpha與OpenGL ES 2.0混合?
- 13. OpenGLES混合bug,alpha積累
- 14. 爲什麼alpha混合如此昂貴?
- 15. XNA/MonoGame:深度排序alpha混合UserPrimitives
- 16. DirectX alpha混合(延遲渲染)
- 17. 與源在alpha混合(HTML5畫布)
- 18. DirectX9中的Alpha混合問題
- 19. .NET Alpha混合顯示爲純色
- 20. pylab中的變量alpha混合
- 21. Alpha混合2 RGBA顏色用C
- 22. C#Alpha混合透明圖片框
- 23. iPhone OpenGL ES不正確的alpha混合
- 24. 使用openCV進行alpha混合
- 25. 在Monogame中Spritebatch的Alpha混合問題
- 26. Alpha在UIImage的邊緣上混合
- 27. Alpha與兩個透明圖像混合
- 28. OpenGL與源和目標alpha的混合
- 29. DirectX 11 Alpha混合不工作
- 30. 添加與面具的alpha混合
請參閱http://docstore.mik.ua/orelly/java-ent/jfc/ch04_07.htm – 2011-04-25 23:34:46