이미지는 픽셀 그룹으로 구성된 그림이며 이진 형식으로 저장됩니다. Java 언어는 GIF, JPEG 및 BMP의 세 가지 주요 이미지 파일 형식을 지원합니다. Java 언어의 이미지 처리 기능은 Image 클래스에 캡슐화되어 있습니다.
이미지 로딩 및 출력
Java 프로그램에서는 이미지도 객체이므로 이미지를 로드할 때 먼저 Image 객체를 선언한 다음 getImage() 메서드를 사용하여 Image 객체를 이미지 파일과 연결해야 합니다. 이미지 파일을 로드하는 방법에는 두 가지가 있습니다.
Image getImage(URL url), url은 이미지의 위치와 파일 이름을 지정합니다.
Image getImage(URL url,String name), url은 이미지의 위치를 지정하고 name은 파일 이름입니다.
예를 들어, 다음 코드는 Image 객체를 선언하고 getImage() 객체를 사용하여 이를 이미지 파일과 연결합니다.
Image img = getImage(getCodeBase(),"family.jpg");
URL(uniform Resource Location Uniform Resource Locator) 객체는 자원의 이름과 주소를 식별하는 데 사용되며, WWW 클라이언트가 인터넷 자원에 접근할 때 사용됩니다. 이미지의 위치를 결정하는 방법에는 절대 위치와 상대 위치의 두 가지가 있습니다. 상대 위치를 얻는 방법은 다음과 같습니다.
URL getCodeBase(), 애플릿 파일의 위치를 가져옵니다.
URL getDocumentBase(), HTML 파일의 위치를 가져옵니다.
예를 들어, 코드는 다음과 같습니다.
URL picURLA = 새 URL(getDocumentBase(),"imageSample1.gif"), picURLB = 새 URL(getDocumentBase(),"pictures/imageSample.gif") 이미지 imageA = getImage(picURLA), imageB = getImage(picURLB);
이미지 정보(속성)를 얻는 방법은 다음과 같습니다.
getWidth(ImageObserver 관찰자): 너비를 가져옵니다.
getHeight(ImageObserver 관찰자): 높이를 가져옵니다.
이미지 출력 코드는 Paint() 메소드로 작성됩니다. 이미지를 표시하는 방법에는 4가지가 있습니다.
boolean drawImage(Image img,int x,int y,ImageObserver 관찰자)boolean drawImage(Image img,int x,int y,Color bgcolor,ImageObserver 관찰자)boolean drawImage(Image img,int x,int y,int 너비,int 높이 ,ImageObsever 관찰자)boolean drawImage(Image img,int x,int y,int 너비, 정수 높이, 색상 bgcolor, ImageObsever 관찰자)
매개변수 img는 이미지 객체입니다. 이미지 크기가 다르면 표시되는 이미지의 크기가 조정됩니다.
Applet 클래스는 ImageObserver 인터페이스도 구현하며 이는 실제 매개변수로 사용되는 경우가 많습니다. 다음 코드와 주석을 참조하세요.
(1) g.drawImage(image1,0,0,this);//원본 이미지 표시
(2) g.drawImage(image2,10,10,Color.red,this);//그래픽과 배경색 표시 참고: 원본 이미지의 크기가 지정된 범위와 다른 경우 시스템이 자동으로 크기를 조정합니다.
(3) g.drawImage(labImag,0,0,this);//원본 이미지 표시
(4) g.grawImage(labImag,0,120,100,100,this);//확대/축소 표시
(5) g.grawImage(labImag,0,240,500,100,this);//확대/축소 표시
[예제] 작은 애플리케이션은 init() 또는 start() 메소드를 사용하여 이미지를 다운로드(가져오기)하고, Paint() 메소드를 사용하여 가져온 이미지를 표시합니다.
import java.applet.*;import java.awt.*;public class example7_5 확장 Applet{ Image myImag; public void start(){ myImag = getImage(getCodeBase(),"myPic.jpg"); g){ g.drawImage(myImg,2,2,this) }}Frame, JFrame 및 JPanel과 같은 클래스에는 getImage() 메소드가 제공되지 않으므로 이미지 파일을 로드하기 위한 메소드가 있는 java.awt.Toolkit의 Toolkit 추상 클래스를 사용하여 이미지를 로드해야 합니다.
이러한 방식으로 다양한 구성 요소는 getToolkit() 메서드를 사용하여 Toolkit 객체를 얻은 다음 구성 요소의 Paint() 메서드에서 Toolkit 객체를 통해 이미지를 표시할 수 있습니다. 다음 코드는 이러한 사용법을 보여줍니다.
툴킷 도구 = getToolkit(); URL url = 새 URL(http://www.weixueyuan.net/image.gif); 이미지 img = tool.getImage(url);
또한 구성 요소는 툴킷에서 제공하는 정적 메서드 getDefaultToolkit()을 사용하여 기본 툴킷 객체를 얻고 이를 사용하여 이미지를 로드할 수 있습니다. 이때 이미지를 불러오는 코드는 다음과 같이 작성하는 경우가 많습니다.
이미지 img = Toolkit.getDefaultToolkit().getImage(url);