JavaTM Platform
Standard Ed. 6

java.awt.image
클래스 PixelGrabber

java.lang.Object 
  상위를 확장 java.awt.image.PixelGrabber
모든 구현된 인터페이스:
ImageConsumer


public class PixelGrabber
extends Object
implements ImageConsumer

PixelGrabber 클래스는, Image 객체나 ImageProducer 객체와 접속해 그 이미지의 픽셀의 부분집합을 추출 가능한 ImageConsumer 를 구현합니다. 다음은 그 예입니다.


 public void handlesinglepixel(int x, int y, int pixel) {
        int alpha = (pixel >> 24) & 0xff;
        int red   = (pixel >> 16) & 0xff;
        int green = (pixel >>  8) & 0xff;
        int blue  = (pixel      ) & 0xff;
        // Deal with the pixel as necessary...
 }

 public void handlepixels(Image img, int x, int y, int w, int h) {
                int[] pixels = new int[w * h];
                PixelGrabber pg = new PixelGrabber(img, x, y, w, h, pixels, 0, w);
        try {
            pg.grabPixels();
        } catch (InterruptedException e) {
                    System.err.println("interrupted waiting for pixels! ");
                    return;
        }
        if ((pg.getStatus() & ImageObserver.ABORT) ! = 0) {
                    System.err.println("image fetch aborted or errored");
                    return;
        }
        for (int j = 0; j < h; j++) {
            for (int i = 0; i < w; i++) {
                                handlesinglepixel(x+i, y+j, pixels[j * w + i]);
            }
        }
 }

 

관련 항목:
ColorModel.getRGBdefault()

필드의 개요
 
인터페이스 java.awt.image. ImageConsumer 로부터 상속된 필드
COMPLETESCANLINES , IMAGEABORTED , IMAGEERROR , RANDOMPIXELORDER , SINGLEFRAME , SINGLEFRAMEDONE , SINGLEPASS , STATICIMAGEDONE , TOPDOWNLEFTRIGHT
 
생성자 의 개요
PixelGrabber (Image  img, int x, int y, int w, int h, boolean forceRGB)
          지정된 이미지로부터 픽셀의 구형 부분 (x, y, w, h)을 꺼내는, PixelGrabber 객체를 생성합니다.
PixelGrabber (Image  img, int x, int y, int w, int h, int[] pix, int off, int scansize)
          지정된 이미지로부터 픽셀의 구형 부분 (x, y, w, h)을 지정의 배열에 꺼내는, PixelGrabber 객체를 생성합니다.
PixelGrabber (ImageProducer  ip, int x, int y, int w, int h, int[] pix, int off, int scansize)
          지정된 ImageProducer 가 생성하는 이미지로부터 픽셀의 구형 부분 (x, y, w, h)을 지정의 배열에 꺼내는, PixelGrabber 객체를 생성합니다.
 
메소드의 개요
 void abortGrabbing ()
          PixelGrabber 에 이미지의 바쁜 와중지를 요구합니다.
 ColorModel getColorModel ()
          픽셀을 배열에 포함하기 위한 ColorModel 를 돌려줍니다.
 int getHeight ()
          (이미지의 높이를 조정 후) 픽셀 버퍼의 높이를 돌려줍니다.
 Object getPixels ()
          픽셀 버퍼를 돌려줍니다.
 int getStatus ()
          픽셀 상태를 돌려줍니다.
 int getWidth ()
          (이미지의 폭을 조정 후) 픽셀 버퍼의 폭을 돌려줍니다.
 boolean grabPixels ()
          Image 또는 ImageProducer 에, 픽셀의 전송을 개시해, 전송이 요구된 구형의 픽셀이 모두 전송 될 때까지 기다리는 것을 요구합니다.
 boolean grabPixels (long ms)
          픽셀의 전송을 개시하도록(듯이) Image 또는 ImageProducer 에 요구해, 목적의 구형의 픽셀이 모두 전송 될 때까지, 또는 지정된 시간이 경과할 때까지 기다립니다.
 void imageComplete (int status)
          imageComplete 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void setColorModel (ColorModel  model)
          setColorModel 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void setDimensions (int width, int height)
          setDimensions 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void setHints (int hints)
          setHints 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void setPixels (int srcX, int srcY, int srcW, int srcH, ColorModel  model, byte[] pixels, int srcOff, int srcScan)
          setPixels 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void setPixels (int srcX, int srcY, int srcW, int srcH, ColorModel  model, int[] pixels, int srcOff, int srcScan)
          setPixels 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void setProperties (Hashtable <?,?> props)
          setProperties 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.
 void startGrabbing ()
          PixelGrabber 에 픽셀의 혼잡 개시를 요구합니다.
 int status ()
          픽셀 상태를 돌려줍니다.
 
클래스 java.lang. Object 로부터 상속된 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

생성자 의 상세

PixelGrabber

public PixelGrabber(Image  img,
                    int x,
                    int y,
                    int w,
                    int h,
                    int[] pix,
                    int off,
                    int scansize)
지정된 이미지로부터 픽셀의 구형 부분 (x, y, w, h)을 지정의 배열에 꺼내는, PixelGrabber 객체를 생성합니다. 픽셀은, 디폴트의 RGB ColorModel 로 배열에 포함됩니다. (i, j)(이)가 구형 (x, y, w, h)의 내부에 위치하는 픽셀 (i, j)의 RGB 데이터는,pix[(j - y) * scansize + (i - x) + off] 의 배열에 포함됩니다.

파라미터:
img - 픽셀의 취득원이미지
x - 이미지로부터 취득하는 픽셀의 구형의 좌상구석의 x 좌표. 이미지의 디폴트 (슬캘링되어 있지 않다) 사이즈를 기준으로 하는
y - 이미지로부터 취득하는 픽셀의 구형의 좌상구석의 y 좌표
w - 취득하는 픽셀의 구형의 폭
h - 취득하는 픽셀의 구형의 높이
pix - 이미지로부터 취득한 RGB 픽셀의 포함에 사용하는 정수 배열
off - 최초의 픽셀을 배열의 어디에 포함하는지를 나타내는 오프셋(offset)
scansize - 배열내가 있는 픽셀행으로부터 다음의 픽셀행까지의 거리
관련 항목:
ColorModel.getRGBdefault()

PixelGrabber

public PixelGrabber(ImageProducer  ip,
                    int x,
                    int y,
                    int w,
                    int h,
                    int[] pix,
                    int off,
                    int scansize)
지정된 ImageProducer 가 생성하는 이미지로부터 픽셀의 구형 부분 (x, y, w, h)을 지정의 배열에 꺼내는, PixelGrabber 객체를 생성합니다. 픽셀은, 디폴트의 RGB ColorModel 로 배열에 포함됩니다. (i, j)(이)가 구형 (x, y, w, h)의 내부에 위치하는 픽셀 (i, j)의 RGB 데이터는,pix[(j - y) * scansize + (i - x) + off] 의 배열에 포함됩니다.

파라미터:
ip - 픽셀을 취득하는 이미지를 생성하는 ImageProducer
x - 이미지로부터 취득하는 픽셀의 구형의 좌상구석의 x 좌표. 이미지의 디폴트 (슬캘링되어 있지 않다) 사이즈를 기준으로 하는
y - 이미지로부터 취득하는 픽셀의 구형의 좌상구석의 y 좌표
w - 취득하는 픽셀의 구형의 폭
h - 취득하는 픽셀의 구형의 높이
pix - 이미지로부터 취득한 RGB 픽셀의 포함에 사용하는 정수 배열
off - 최초의 픽셀을 배열의 어디에 포함하는지를 나타내는 오프셋(offset)
scansize - 배열내가 있는 픽셀행으로부터 다음의 픽셀행까지의 거리
관련 항목:
ColorModel.getRGBdefault()

PixelGrabber

public PixelGrabber(Image  img,
                    int x,
                    int y,
                    int w,
                    int h,
                    boolean forceRGB)
지정된 이미지로부터 픽셀의 구형 부분 (x, y, w, h)을 꺼내는, PixelGrabber 객체를 생성합니다. setPixels 의 호출마다 같은 ColorModel 이 사용되는 경우, 픽셀은 원의 ColorModel 에 축적됩니다. 그렇지 않은 경우, 픽셀은 디폴트 RGB ColorModel 로 축적됩니다. forceRGB 파라미터가 true 의 경우는, 픽셀은 디폴트의 RGB ColorModel 로 축적됩니다. PixelGrabber 는, 어느 쪽의 경우에서도 픽셀이 보관 유지되도록(듯이) 버퍼를 할당합니다. (w < 0) 또는 (h < 0)의 경우는, 정보가 전송 될 때의 나머지의 소스 데이터의 폭과 높이가 디폴트가 됩니다.

파라미터:
img - 이미지 데이터의 취득원이미지
x - 이미지로부터 취득하는 픽셀의 구형의 좌상구석의 x 좌표. 이미지의 디폴트 (슬캘링되어 있지 않다) 사이즈를 기준으로 하는
y - 이미지로부터 취득하는 픽셀의 구형의 좌상구석의 y 좌표
w - 취득하는 픽셀의 구형의 폭
h - 취득하는 픽셀의 구형의 높이
forceRGB - 픽셀을 디폴트 RGB ColorModel 에 항상 변환하는 경우는 true
메소드의 상세

startGrabbing

public void startGrabbing()
PixelGrabber 에 픽셀의 혼잡 개시를 요구합니다.


abortGrabbing

public void abortGrabbing()
PixelGrabber 에 이미지의 바쁜 와중지를 요구합니다.


grabPixels

public boolean grabPixels()
                   throws InterruptedException 
Image 또는 ImageProducer 에, 픽셀의 전송을 개시해, 전송이 요구된 구형의 픽셀이 모두 전송 될 때까지 기다리는 것을 요구합니다.

반환값:
픽셀의 취득에 성공했을 경우는 true. 중단, 에러, 또는 타임 아웃의 경우는 false
예외:
InterruptedException - 다른 thread가 이 thread를 중단했을 경우

grabPixels

public boolean grabPixels(long ms)
                   throws InterruptedException 
픽셀의 전송을 개시하도록(듯이) Image 또는 ImageProducer 에 요구해, 목적의 구형의 픽셀이 모두 전송 될 때까지, 또는 지정된 시간이 경과할 때까지 기다립니다. 이 메소드는,ms 의 값에 의해, 이하와 같이 동작합니다.

파라미터:
ms - 이미지의 픽셀이 취득을 기다리는 시간 (밀리 세컨드). 이것을 경과했을 경우는 타임 아웃이 된다
반환값:
픽셀의 취득에 성공했을 경우는 true. 중단, 에러, 또는 타임 아웃의 경우는 false
예외:
InterruptedException - 다른 thread가 이 thread를 중단했을 경우

getStatus

public int getStatus()
픽셀 상태를 돌려줍니다. 사용 가능한 픽셀 정보를 나타내는 ImageObserver 플래그를 돌려줍니다.

반환값:
모든 관련하는 ImageObserver 플래그의 비트화
관련 항목:
ImageObserver

getWidth

public int getWidth()
(이미지의 폭을 조정 후) 픽셀 버퍼의 폭을 돌려줍니다. 픽셀의 구형의 높이가 지정되어 있지 않았던 경우, 이 정보는, 이미지가 크기를 전송 한 뒤에게만 이용 가능합니다.

반환값:
픽셀 버퍼에 사용되는 최종적인 폭. 미정의 경우는,-1
관련 항목:
getStatus()

getHeight

public int getHeight()
(이미지의 높이를 조정 후) 픽셀 버퍼의 높이를 돌려줍니다. 픽셀의 구형의 높이가 지정되어 있지 않았던 경우, 이 정보는, 이미지가 크기를 전송 한 뒤에게만 이용 가능합니다.

반환값:
픽셀 버퍼에 사용되는 최종적인 높이. 미정의 경우는,-1
관련 항목:
getStatus()

getPixels

public Object  getPixels()
픽셀 버퍼를 돌려줍니다. 픽셀을 보관 유지하는 명시적인 픽셀 버퍼로 PixelGrabber 가 작성되지 않았던 경우, 이 메소드는 이미지의 사이즈 및 형식을 알 수 있을 때까지 null 를 돌려줍니다. 소스 이미지가 복수의 ColorModel 를 사용해 데이터를 전송 하는 경우는 항상, PixelGrabber 는 디폴트 RGB ColorModel 로 데이터를 축적하려고 하므로, 이 메소드로 반환되는 배열 객체는, 이미지의 취득이 완료할 때까지 에 변화할 가능성이 있습니다.

반환값:
byte 배열 또는 int 배열
관련 항목:
getStatus() , setPixels(int, int, int, int, ColorModel, byte[], int, int) , setPixels(int, int, int, int, ColorModel, int[], int, int)

getColorModel

public ColorModel  getColorModel()
픽셀을 배열에 포함하기 위한 ColorModel 를 돌려줍니다. PixelGrabber 가 명시적인 픽셀 버퍼로 구축되는 경우, 이 메소드는, 항상 디폴트의 RGB ColorModel 를 돌려줍니다. 그렇지 않은 경우, ImageProducer 가 사용하는 ColorModel 가 판명될 때까지 null 를 돌려줍니다. 소스 이미지가 복수의 ColorModel 를 사용해 데이터를 전송 하는 경우는 항상, PixelGrabber 는 디폴트 RGB ColorModel 로 데이터를 축적하려고 하므로, 이 메소드로 반환되는 ColorModel 객체는, 이미지의 취득이 완료할 때까지 에 변화하는 일이 있습니다. 그 경우, 픽셀의 전송에 ImageProducer 가 사용한 ColorModel 객체가 1 개나 반영되지 않을 가능성이 있습니다.

반환값:
픽셀의 포함에 사용되는 ColorModel 객체
관련 항목:
getStatus() , ColorModel.getRGBdefault() , setColorModel(ColorModel)

setDimensions

public void setDimensions(int width,
                          int height)
setDimensions 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 setDimensions
파라미터:
width - 이 Dimension 의 폭
height - 이 Dimension 의 높이

setHints

public void setHints(int hints)
setHints 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 setHints
파라미터:
hints - 픽셀 처리에 사용되는 힌트 세트

setProperties

public void setProperties(Hashtable <?,?> props)
setProperties 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 setProperties
파라미터:
props - 프로퍼티의 리스트

setColorModel

public void setColorModel(ColorModel  model)
setColorModel 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 setColorModel
파라미터:
model - 지정된 ColorModel
관련 항목:
getColorModel()

setPixels

public void setPixels(int srcX,
                      int srcY,
                      int srcW,
                      int srcH,
                      ColorModel  model,
                      byte[] pixels,
                      int srcOff,
                      int srcScan)
setPixels 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 setPixels
파라미터:
srcX - 설정되는 픽셀 영역의 좌상구석의 X 좌표
srcY - 설정되는 픽셀 영역의 좌상구석의 Y 좌표
srcW - 픽셀 영역의 폭
srcH - 픽셀 영역의 높이
model - 지정된 ColorModel
pixels - 픽셀의 배열
srcOff - pixels 배열의 오프셋(offset)
srcScan - pixels 배열내에서의 있는 픽셀행으로부터 다음의 픽셀행까지의 거리
관련 항목:
getPixels()

setPixels

public void setPixels(int srcX,
                      int srcY,
                      int srcW,
                      int srcH,
                      ColorModel  model,
                      int[] pixels,
                      int srcOff,
                      int srcScan)
setPixels 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 setPixels
파라미터:
srcX - 설정되는 픽셀 영역의 좌상구석의 X 좌표
srcY - 설정되는 픽셀 영역의 좌상구석의 Y 좌표
srcW - 픽셀 영역의 폭
srcH - 픽셀 영역의 높이
model - 지정된 ColorModel
pixels - 픽셀의 배열
srcOff - pixels 배열의 오프셋(offset)
srcScan - pixels 배열내에서의 있는 픽셀행으로부터 다음의 픽셀행까지의 거리
관련 항목:
getPixels()

imageComplete

public void imageComplete(int status)
imageComplete 메소드는, 픽셀을 꺼내기 위해서(때문에) 이 클래스가 구현해야 하는 ImageConsumer API 의 일부입니다.  

주:이 메소드는, 꺼내 대상의 픽셀로 구성되는 Image 의 ImageProducer 에 의해 불려 가는 것을 의도해 구현되고 있습니다. 이 클래스를 사용해 이미지로부터 픽셀을 꺼내는 경우는, 이 메소드를 직접 호출하지 않게 해 주세요. 이 메소드를 직접 호출하면(자), 요구되고 있는 픽셀을 꺼내는데 있어서 문제가 생길 가능성이 있습니다.

정의:
인터페이스 ImageConsumer 내의 imageComplete
파라미터:
status - 이미지 로드 상태
관련 항목:
ImageProducer.removeConsumer(java.awt.image.ImageConsumer)

status

public int status()
픽셀 상태를 돌려줍니다. 사용 가능한 픽셀 정보를 나타내는 ImageObserver 플래그를 돌려줍니다. 이 메소드와 getStatus 는 같은 구현을 가지고 있습니다만,"getXXX" 라고 하는 형식을 가지는 정보 취득 메소드의 명명 규칙에 따르는 getStatus 메소드의 사용을 추천합니다.

반환값:
모든 관련하는 ImageObserver 플래그의 비트화
관련 항목:
ImageObserver , getStatus()

JavaTM Platform
Standard Ed. 6

버그의 보고와 기능의 요청
한층 더 자세한 API 레퍼런스 및 개발자 문서에 대해서는,Java SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.