2012-11-08 5 views
-1

자바 응용 프로그램에 사용하는 코드 스 니펫이 있습니다. 0xFF의 16 진 값을 파란색과 같은 RGB 값으로 대체하는 것이 좋습니다.0xFF를 RGB 값으로 변환

void trailBlurEffect(int blendAmount, PGraphics buffer) { 
    for (int i = 0, y = 0; y < buffer.height; y++) { 
    for (int x = 0; x < buffer.width; x++, i++) { 
     buffer.pixels[i] = 0xff000000 | ((buffer.pixels[i] & 0xFF) * blendAmount) >> 8; 
    } 
    } 
    nodeBuffer.updatePixels(); 
} 

편집 : 그러나 나는 내가 = 0xFF0000이고 내 캔버스립니다 빨간색의 헥사 값으로 0xFF로 (파란색)을 대체하여, 예를 들어, 작동하는 결과를 얻을 수 없습니다 나는 다른 색을 쓰기 위해 노력하고 있어요 아무것도. 내 코드는 다음 예제에서 나온 것입니다 : openprocessing.org/sketch/52388

+0

시도해 보셨습니까? 어떤 문제가 있습니까? – kosa

+1

'0xFF' _is_ RGBA 파란색. –

+0

0xFF를 파란색 이외의 다른 색상으로 변환하려고합니다. 변환기를 사용하는 경우 빨간색으로 말하면 FF0000은 작동하지 않는 16 진수 형식과 같습니다. – user813611

답변

1

당신이 성취하고자하는 것은 꽤 명확하지 않습니다. RGB 색상은 빨강, 녹색 및 파랑 값의 세 가지 다른 숫자로 제공됩니다. 각 값의 범위는 0 - 255입니다. 0xFF는 RGB 값이 아니며 색상 중 하나를 나타내는 값입니다. 전체 RGB 색상을 얻으려면 0xFF0000과 같은 것을 사용해야합니다. 그래서 아니오, 당신은 마술처럼 0xFF를 Blue로 만들 수 없으므로 다른 색상의 값도 알아야합니다. 당신은 세 가지 값을 취할 수 있고 거기에서부터 색상을 공식화 할 수 있습니다. IE는 rValue, gValue 및 bValue를 가져 와서 함께 묶어 0xRRGGBB의 클래식 RGB 형식을 얻습니다.

희망이 도움이됩니다.

1

나는 이진 수학을 알고 don'y,하지만 난이 0xFF로는 [I] buffer.pixels에 적용 할 수있는 마스크입니다

buffer.pixels[i] & 0xFF 

에서 수행되고 있는지 생각합니다. 그래서 이것은 당신이 원하는 색깔을 얻을 수있는 방법이 아닙니다. draw()에서 ellipse()를 호출하기 전에 fill (wantedColor)를 호출 할 수 있지만 작성자가 지적한 페이지에서 그 흔적은 파란색 채널 만 사용했기 때문에 흔적은 여전히 ​​파란색이라고 생각합니다.

관련 문제