opacity 구현시 30/70을 정수 연산 혹은shift 연산으로 나타내는
실수연산
r = COLOR_R( color ) * 30 / 100 + COLOR_R( *target )* 70 / 100;
g = COLOR_G( color )* 30 / 100 + COLOR_G( *target )* 70 / 100;
b = COLOR_B( color )* 30 / 100 + COLOR_B( *target ) *70 / 100;
제가한 shift연산입니다.
결과에 오차가 생긴다는 0.31 :0.69
srcr=(int)(getr(color));
srcg=(int)(getg(color));
srcb=(int)(getb(color));
destr=(int)(getr(op_color));
destg=(int)(getg(op_color));
destb=(int)(getb(op_color));
r = (srcr>>1)-(srcr>>2)+(srcr>>3)-(srcr>>4)+(destr>>1)+(destr>>2)-(destr>>3)+(destr>>4);
g = (srcg>>1)-(srcg>>2)+(srcg>>3)-(srcg>>4)+(destg>>1)+(destg>>2)-(destg>>3)+(destg>>4);
b = (srcb>>1)-(srcb>>2)+(srcb>>3)-(srcb>>4)+(destb>>1)+(destb>>2)-(destb>>3)+(destb>>4);
아시는 분 조언 부탁드립니다.
25:75 50:50은 간단하게 끝나지만 30:70은 영~ - -;;
댓글 달기