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