2014-02-22 2 views
-2

16 진수로 변환하지만, (빨강, 녹색, 파랑, 알파)은하지 정수 사이 255하지만 사이의 부동 소수점 숫자 0-1.0, 그래서 나는 16 진수 RGBA로 변환하는 방법을 알고하지 않으며, 그 반대의gtk3 +와 파이썬 RGBA 난 내가 뭔가 색을 나타 내기 위해 RGBA를 사용하는 것이 발견 gtk3를 사용하여

나는이 코드를 시도했지만 그 작동하지 않을 것 같다 : 문제를 가정

def convert_to_hex(rgba_color) : 
red = str(hex(int(rgba_color.red*255)))[2:].capitalize() 
green = str(hex(int(rgba_color.green*255)))[2:].capitalize() 
blue = str(hex(int(rgba_color.blue*255)))[2:].capitalize() 

return '0x' + red + green + blue 
+0

"작동하지 않는 것 같습니다."- 더 많은 정보를 추가 할 수 있습니까? 오류가 발생합니까 (전체 추적을 제공합니까)? 예상치 못한 결과를 얻습니까 (입력 값과 예상 결과 및 실제 결과 제공)? – jonrsharpe

+0

나는 좋은 16 진수 숫자를 받았지만 온라인으로 16 진수 색상을 사용하면 다른 색상으로 표시됩니다 – karim

+0

다음 예제 입력 및 출력을 제공하십시오. – jonrsharpe

답변

4

입니다 숫자가 단지 1 자리수 일 때 맨 앞에 0이 있어야합니다. 여기에 대한 해결책이 있습니다.

def convert_to_hex(rgba_color) : 
    red = int(rgba_color.red*255) 
    green = int(rgba_color.green*255) 
    blue = int(rgba_color.blue*255) 
    return '0x{r:02x}{g:02x}{b:02x}'.format(r=red,g=green,b=blue) 
+0

여전히 작동하지 않습니다. 16 진수를 입력하십시오. 그것은 다른 색깔을 준다 – karim

+0

어떤 색깔이 잘못된 출력을 주는가? – M4rtini