BufferedImage
개체를 사용하여 getRGB(int x, int y)
을 호출하면 하나의 음수를 얻습니다.Java - getRGB에 대한 빨강, 초록, 파랑
세 개의 서로 다른 값 (빨강, 초록, 파랑)을 어떻게 하나의 음수로 변환 할 수 있습니까?
BufferedImage
개체를 사용하여 getRGB(int x, int y)
을 호출하면 하나의 음수를 얻습니다.Java - getRGB에 대한 빨강, 초록, 파랑
세 개의 서로 다른 값 (빨강, 초록, 파랑)을 어떻게 하나의 음수로 변환 할 수 있습니까?
BufferedImage에 다음과 같은 코드를 사용 java.awt.image.ColorModel
에 위임 끝 :
public int getRGB(Object inData) {
return (getAlpha(inData) << 24)
| (getRed(inData) << 16)
| (getGreen(inData) << 8)
| (getBlue(inData) << 0);
}
을 필요에 따라이 수정 사소한 훈련이다.
JB Nizet의 대답은 훌륭하지만이지만 'Color'유형의 새 개체를 수천 번 만들 때 정말 느려질 수 있습니다. 가장 간단한 방법은 다음과 같습니다
int rgb = (red << 16 | green << 8 | blue)
BTW ByteBit
응답으로. 모든 BufferedImage에는, 모든 픽셀을 보관 유지하는 배열이 포함되어 있습니다. BufferedImage의 형태가 TYPE_INT_RGB의 경우, 배열은 int 배열이됩니다. 따라서 많은 픽셀 조작을 원할 경우 해당 배열에 직접 작성하여 프로그램 속도를 높일 수 있습니다. int [] pixels = ((DataBufferInt) image.getRaster(). getDataBuffer()). getData() – SpiderPig