Конференция "Media" » Как наложить пиксели с различными значениями альфа канала [D7, WinXP]
 
  • Mishus3W © (30.05.11 19:24) [0]
    Суть вопроса такова: взгляните на данный рисунок:

    http://i1.ambrybox.com/300511/1306705394276.png

    на нем нарисовано два круга синего и красного цветов, с альфа каналом 128 (50%). Эти круги перекрываются в определенной области. Собственно нужно найти значение RGBA в этой области (они обозначены знаками вопросов).

    Значение альфа канала может меняться.
  • antonn © (30.05.11 19:59) [1]
    сам недавно парился с формулой, только у меня накладываемое изображение нужно было с некоторым прцоентом полупрозрачности наложить. Но по сути было так:
    var x, y: Integer; _r,_b,_g:integer;  RowOut,RowIn:PRGBAArray; amount:double;
    begin
    ..

    //in - накладываемое изображение, out - результирующее
    amount:=(RowOut[x].rgbReserved/RowIn[x].rgbReserved);

    _r:=round((1-amount)*RowIn[x].rgbRed+amount*RowOut[x].rgbRed);  if(_r>255) then _r:=255 else if(_r<0) then _r:=0;
    RowOut[x].rgbRed:=_r; //красный канал

    RowOut[x].rgbReserved:=max(RowIn[x].rgbReserved,RowOut[x].rgbReserved);



    собственно код тут: http://forum.sources.ru/index.php?showtopic=330729&st=0&#entry2888880
    сам бы хотел знать является ли формула правильной
  • MBo © (30.05.11 20:49) [2]
    вот тут см. ассоциативные формулы (две последние формулы перед разделом Analytical derivation)
    http://en.wikipedia.org/wiki/Alpha_compositing
 
Конференция "Media" » Как наложить пиксели с различными значениями альфа канала [D7, WinXP]
Есть новые Нет новых   [120174   +9][b:0][p:0.001]