클릭하세요 자바2 JDK 1.4

Download Report

Transcript 클릭하세요 자바2 JDK 1.4

15장 :이미지 처리와 오디오
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
1
이미지 로딩

비트맵 파일을 Image 객체로 불러들임

getImage() 메서드의 사용



GC의 이용



로컬 파일과 URL을 이용해서 불러들일 수 있음
Toolkit 클래스와 Applet 클래스에서 동시에 사용 가능
Image 객체를 실제로 화면에 그림
drawImage() 메서드의 사용
코드 1 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
2
애플리케이션에서의 비트맵 이미지

애플리케이션에서는 Toolkit 클래스를 사용
 Toolkit.getDefaultToolkit().getImage()
 일단 Image 객체 생성후는 애플릿과 동일
코드 2 실습


java ImgViewer lenna.jpg 으로 실행
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
3
이미지 프로세싱

drawImage() 메서드의 이용



그래픽 좌표와 실제 이미지간의 매핑 이용
p.443의 메서드 프로토타입 참조
그래픽 좌표와 실제 이미지 좌표의 매핑에 따라서..



일부 그리기, 스케일링
좌우, 상하 뒤집기 등이 가능함
코드 3 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
4
이미지 처리의 내부구조

그래픽 쓰레드의 할당





그래픽의 로딩 시에 할당됨
이미지 로딩 과정에 호출한 컴포넌트에
imageUpdate() 메서드를 계속해서 호출함
화면의 깜박임(flickering) 발생
이미지 로딩이 완료되었을때만, 처리하도록 수정
코드 4 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
5
이미지 애니메이션

연속적인 이미지 프레임을 시간차을 두어 화면에 보여줌

코드 5 실습
깜박임의 줄임



update() 메서드의 수정 : 백그라운드 보정
코드 6 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
6
더블 버퍼링

메모리 상의 이미지


화면에 그리는 것은 깜박거
림(Flickering)을 야기
createImage() 메서드


해당 메서드로 메모리 상의
이미지 그래픽을 만듦
코드 7 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
7
배경 이미지에 움직이는 모습 만들기




더블 버퍼링을 위한 가상 이미지 준비
가상 이미지 위에서 애니메이션 처리
애니메이션 후 한번에 화면에 뿌려줌
코드 8 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
8
Image I/O

Image 입출력만을 처리하는 클래스



JDK 1.4 이후에 제공
Plug-in 클래스를 이용해서 여러 이미지 형태를
프로그램의 수정 없이 사용 가능함
읽기/쓰기

read() 메서드


write() 메서드


파일이나 네트워크에서 읽어서 BufferedImage를 반환
BufferedImage를 특정 포맷으로 저장함
코드 9 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
9
오디오 처리

디지털 오디오


JMF, Java Sound API를 이용해서 접근 가능
간단한 오디오 재생


애플릿과 애플리케이션에서 간단히 오디오 재생을
하는 것이 가능
AudioClip 클래스의 이용



getAudioClip() 메서드로 객체 생성
생성된 AudioClip 객체로 해당 오디오 파일 재생
코드 10 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
10
애플리케이션에서의 오디오 플레이



Applet 클래스의 newAudioClip() 이용
클래스 메서드이므로, 애플리케이션에서
사용 가능
코드 11 실습
© 대림 & SOA
클릭하세요 자바2 JDK 1.4
11