2014-01-20 6 views
1

이 같은 ARGB 형태로 알파 혼합 두 개의 32 비트 픽셀 일부 C# 코드를 쓰고 있어요 :알파 혼합이 ARGB 색상은

Red = 0xFFFF0000 with an Alpha of 255 "FF" 

을 어쨌든, 나는이 같은 바이트 혼합 당 바이트를 방지하기 위해 노력하고 있습니다 :

public static Color Blend(this Color color, Color backColor, double amount) 
    { 
     amount = (255 - amount); 
     byte r = (byte)((color.R * amount/255) + backColor.R * (255 - amount)/255); 
     byte g = (byte)((color.G * amount/255) + backColor.G * (255 - amount)/255); 
     byte b = (byte)((color.B * amount/255) + backColor.B * (255 - amount)/255); 
     return Color.FromArgb(r, g, b); 
    } 

나는 두 배를 사용하지 않고 가능한 한 빨리하려고합니다. 정수 형태로 2 개의 픽셀을 바이트로 나누지 않고 알파 블렌드 할 수있는 방정식이 있습니까?

P. Color.FromARGB와 같은 .NET 프레임 워크 호출을 사용할 수 없습니다.

감사의

+1

당신은 말 그대로 예제 코드 블록에서 Colors.FromArgb를 사용합니다. –

답변

0

당신은 정수 알파 매개 변수를 받아 the other .FromArgb method를 사용할 수 있습니다.

+0

나는 슬프게도하고있는 것을 사용하지 않습니다. 나는 Assembly에 원하는 것을하는 방정식을 쓸 계획이다. – user3213751

+0

그런 다음 [ARGB 블렌딩에 대한이 SO 답변]을 읽으십시오. (0120-337-385) –

+1

내 질문을하기 전에 이미 읽으십시오. "바이트 당 바이트"를하지 않는 방정식이 필요합니다. CPU 계산과 시간을 절약 할 수 있도록 전체 ARGB 값을 혼합하는 것입니다. – user3213751