|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--org.kwis.msp.lcdui.Image
이미지를 나타내는 클래스입니다.
이미지 클래스는 gif나 png등의 여러가지 이미지 포멧의 데이타로 부터
생성할 수 있으며, 이전에 있는 이미지로부터 복사하여 생성할 수도 있습니다.
이때 복사된 이미지에 한하여 getGraphics
로
이미지의 내용의 변경이 가능합니다.
이미지는 변경이 가능한 이미지 변경이 가능하지 않은 이미지로 분류됩니다. 변경이 가능한 이미지는 주로 프로그램에서 임의적으로 만드는 이미지 이며, 이미지 파일로 부터 생성하는 이미지는 변경이 가능하지 않은 이미지 입니다.
변경하기 위해서는 이미지를 복사하여 사용해야 합니다. 코드는 다음과 같습니다.
Image src;
src = Image.createImage("/test.gif");
Image copy = Image.createImage(src);
Graphics g = copy.getGraphics();
g.drawLine(0, 0, 10, 10);
복사할때에 애니메이션 이미지인 경우에는 이미지 복사가 되지 않으며, mask된 이미지인 경우에 mask부분이 힌색으로 변환되어 복사되며, 복사된 이미지는 더이상 mask를 가지고 있지 않습니다.
현재 이미지는 gif(animated), png, bmp(RLE압축포함) 포맷을 지원합니다.
Constructor Summary | |
Image()
|
Method Summary | |
static Image |
createImage(byte[] imagedata,
int imageoffset,
int imagelength)
지정된 이미지 데이타 어레이로 부터 이미지를 생성합니다. |
static Image |
createImage(Image image)
지정된 이미지를 복사해서 다른 편집이 가능한 이미지를 생성합니다. |
static Image |
createImage(int width,
int height)
지정된 높이와 폭의 편집 가능한 이미지를 생성합니다. |
static Image |
createImage(String name)
지정된 리소스의 이미지를 생성합니다. |
Graphics |
getGraphics()
이미지에 그릴수 있는 그래픽을 돌려줍니다. |
int |
getHeight()
이미지의 높이를 돌려줍니다. |
int |
getWidth()
이미지의 폭를 돌려줍니다. |
boolean |
isAnimated()
Image가 Animation이 가능한지 여부를 돌려줍니다. |
boolean |
isMutable()
이미지의 편집 가능 여부를 돌려줍니다. |
static Image |
loadImage(String str,
ImageObserver io)
문자열이 지정하는 자료로 부터 이미지를 읽어들입니다. |
void |
play(ImageObserver ob)
이미지의 움직임을 시작합니다. |
void |
stop()
애니메이션을 중지시킵니다. |
static void |
stopImage(ImageObserver io)
ImageObserver 에 대응하는 이미지를
읽기를 중단 시킵니다.
|
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Constructor Detail |
public Image()
Method Detail |
public static Image createImage(byte[] imagedata, int imageoffset, int imagelength)
imageoffset
부터 imagelength
까지의
내용으로 이미지를 생성합니다.
이때 data의 내용은 각 플랫폼마다 다를 수 있습니다.
만일 데이타가 잘못되어 있는 경우에는
IllegalArgumentException
이 발생합니다.
이 함수로 생성된 이미지는 편집이 불가능합니다.
imagedata
- 이미지 자료를 가지고 있는 어레이imageoffset
- 어레이의 시작점imagelength
- 이미지 자료의 길이IllegalArgumentException
- 제대로 된
형식의 데이타가 아닌 경우NullPointerException
- imagedata
가
null
인 경우.ArrayIndexOutOfBoundsException
- imageoffset
와
imagelength
가 지정하는 영역이 어레이의 유효한 영역을
벗어 날때public static Image loadImage(String str, ImageObserver io)
ImageObserver
의
notify
함수를 불러줍니다.
이 함수를 통해서 돌려진 이미지는 처음에는 아무런 내용이 없으며,
폭과 높이는 각각 0이 되고, 실제 이미지가 완성된
후(ImageObserver.notify
가 불린후)에야 제대로 된 폭과
높이를 얻어 올 수 있습니다.
한 이미지에 대해서는 하나의 ImageObserver만이 가능합니다.
이 함수로 생성된 이미지는 편집이 불가능합니다.
str
- 자료의 경로명을 지정하는 문자열io
- 이미지 생성을 알려줄 ImageObserver
NullPointerException
- str
이
null
인 경우.ImageObserver.notify(org.kwis.msp.lcdui.Image, int)
public static Image createImage(Image image)
getGraphics()
를 통해서 Graphics
개체를 가져온 후에 이미지를 편집할 수 있습니다.
단 Animation
이미지는
각 프레임이 존재하기 때문에 이미지를 복사할 수 없으므로 이
경우에는 IllegalArgumentException
을 던져줍니다.
이 함수로 생성된 이미지는 편집 가능합니다.
image
- 복사할 이미지IllegalArgumentException
- 넘겨진 이미지가 animation인 경우NullPointerException
- image
가
null
인 경우.public static Image createImage(int width, int height)
getGraphics()
함수를 통해서 Graphics
객체를 얻어 와서
이 객체를 통해 이미지 편집이 가능합니다.
이 함수로 생성된 이미지는 편집 가능합니다.
width
- 이미지의 폭.height
- 이미지의 높이.IllegalArgumentException
- width
와
height
가 0이하인 경우public static Image createImage(String name) throws IOException
이 함수로 생성된 이미지는 편집이 불가능합니다.
name
- 자원 경로명IllegalArugmentException
- 만일 이미지가 잘못된
포맷이거나 자원이 존재하지 않는 경우NullPointerException
- name
이
null
인 경우.Class.getResourceAsStream(java.lang.String)
public Graphics getGraphics()
Graphics
객체를 얻어 옵니다.
만일 편집 가능하지 않은 이미지라면 null
을 돌려줍니다.public int getHeight()
public int getWidth()
public boolean isMutable()
public boolean isAnimated()
public void play(ImageObserver ob)
ImageObserver
에
animation 진행 상황을
ImageObserver
의
notify()
함수를 호출함으로써 알려줍니다.
Animation 이미지가 아닌 경우에 이 함수는 아무런
작업도 하지 않습니다.
이 함수는 상당히 많은 computing시간을 요구합니다. 새로운 프레임을 만들때 마다, gif를 decode하기 때문입니다. 또한 animation 이미지를 위해서 내부에 이미지 원본 내용을 그대로 저장하고 있기 때문에 메모리를 상당히 소모합니다. 이 함수를 호출하고 나서 stop함수를 꼭 호출하도록 하십시오. 그래야 메모리와 속도를 늘릴 수 있습니다.
ob
- 이미지 ObserverImageObserver
public void stop()
public static void stopImage(ImageObserver io)
ImageObserver
에 대응하는 이미지를
읽기를 중단 시킵니다.
loadImage
나 play
로 "이미지 읽기 큐"에
쌓인 작업을 삭제합니다.
삭제된 후에는 ImageObserver.notify
는 더이상 불리지 않습니다.
응용 프로그램이 play
함수로 애니메이션 이미지를
의 애니메이션을 시작하였다면, stop
함수나
이 함수로 반드시 정지 시켜야합니다. 그렇지 않으면
내부적으로 계속 이미지 디코딩이 일어나므로 CPU 수행 시간과 메모리를
낭비하게 됩니다.
io
가 null
이면 함수는 아무런 일도 하지
않습니다.
io
- 삭제할 이미지에 대응하는 ImageObserver
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
AromaSoft Corp. Proprietary and Confidential
(C)opyright 2003 AromaSoft Corp. All right reserved.
Contact : contact@aromasoft.com