2012-09-25 1 views
1

경계 색이 이미 결정된 개체가 있습니다.두 QColor 객체를 알파 채널과 결합하는 방법은 무엇입니까?

이제 사용자가 채우기 패턴의 불투명도를 설정할 수 있기를 바랍니다. 예 : 국경이 파란색입니다. 사용자가 불투명도를 128로 설정하면 채우기 패턴도 파란색으로 투명하지만 반투명하게 그려집니다.

다음 단계는 사용자가 패턴의 색상을 약간 조정할 수있게하는 것입니다. 예 : "경계선 색상을 사용하지만 반투명 (알파 = 128)과 약간의 노랑 - 옐로."

알파 값이 설정되지 않은 두 가지 색상을 결합하는 유용한 방법이 있습니까? 또는 원래 색상에 알파 값을 설정하고 알파 값이 설정된 "오버레이 색상"과 결합하는 것이 더 합리적입니까?

두 개의 QColor 객체를 결합하는 함수가 있습니까 (아니면 누군가 짧은 코드 스 니펫을 줄 수 있습니까?)?

+0

Qt 문서에서 XRender 확장 기능을 언급 한 것을 발견했습니다. Wikipedia는 http://en.wikipedia.org/wiki/Alpha_compositing을 사용한다고 말했습니다. 그래서 나는 그 기사를 읽고 있습니다. –

답변

2

나는 거기에있는 기존의 색상 선택 도구 (Gimp, Photoshop, Paint, wwWidgets)를 살펴볼 것입니다. 대부분 색상을 선택하는 몇 가지 방법이 있습니다.

채도, 값, 밝기, 대비, RGB, CMYK, HSV, 알파/불투명도.

Qt는 상자 밖으로 이러한 권리의 무리를 처리합니다

QColor

을 두 가지 색상을 결합하기 위해, 나는 아마 서로 다른 구성 요소를 함께 평균 것이다 :

// Rough pseudocode 

Color1 RGBA, Color 2 RGBA, Color 3 = combination 

Color3.R = (Color1.R + Color2.R)/2 
Color3.G = (Color1.G + Color2.G)/2 
Color3.B = (Color1.B + Color2.B)/2 
Color3.A = (Color1.A + Color2.A)/2 

나는 희망 도움이됩니다.

추신 : Color Space을 이해하는 것도 도움이 될 수 있습니다.

+2

그 (것)들을 가진 색깔을 가중하기 대신에 다만 알파 채널을 평균화하는 것은 일반적으로 알파를 무시하는 것처럼 좋게 보인다. – IARI