簡體   English   中英

用Java處理Alpha混合

[英]Processing alpha blending in Java

我正在處理,我想在低級代碼上重新創建功能最輕的混合。

我在文檔中看到C = max(A * factor, B)

  • C是返回的顏色
  • A是來源
  • B是要混合的圖像

我在網上看到,指定的系數基於源像素的alpha分量,該分量由代表像素顏色的32位整數的前8位(從左開始)表示。 這些最左邊的位也稱為最高位。

資料來源: 這本書 ,第464頁

我應該怎么看?

這是我那部分的代碼:

for (int y = 0; y < capWidth * capHeight; y++) {
    int factor = (pixels[y] >> 24) & 0xFF;
    pixels[y] = max(pixels[y] * factor, previousFrame.pixels[y]);      
} 

那行不通,有幫助嗎?

  1. 這將不起作用,因為原始公式中的factor是0到1之間的浮點數,而代碼中的factor是0到255之間的整數。
  2. 這不是混合的公式,不是真的。 對於混合,您必須添加顏色,而不是最大

對於每種顏色:C = A(a / 255)+ B(1-(a / 255)),其中:

A是前景值,

B是背景值,

C是結果值,並且

a是alpha分量。

這是根據Alpha混合Wiki頁面進行的: http : //en.wikipedia.org/wiki/Alpha_compositing#Alpha_blending

http://processing.googlecode.com/svn/trunk/processing/build/javadoc/core/index.html

我在這里得到了,SVG處理javadoc來混合Lighten! 好 !

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM