ImageIO.write() 는 다음과 같 3가지 형태로 사용할 수 있다.
static boolean write(RenderedImage im, String formatName, File output)
static boolean write(RenderedImage im, String formatName, ImageOutputStream output)
static boolean write(RenderedImage im, String formatName, OutputStream output)
다음은 위에 제시된 방법 중 첫번째, File 클래스를 이용하여 이미지 파일을 생성하는 예이다
3번째 방법을 이용하면 Socket 등으로 연결된 원격 시스템에 이미지 데이터를 전달할 수도 있다.
// URL 클래스를 이용하여 이미지 파일을 로드하여 BufferedImage로 전환하는 예
URL imgURL = getClass().getResource("images/smile.jpg");
try {
img = ImageIO.read(imgURL);
// 로컬 시스템에 이미지 파일을 생성하는 예
ImageIO.write(img, "jpg", new File("D:/test/myFile.jpg"));
System.out.println("이미지 파일 생성 성공");
} catch (Exception e) {
e.printStackTrace();
}
소켓을 통해 이미지를 수신하는 예
BufferedImage image = ImageIO.read(socket.getInputStream());
ImageIcon icon = new ImageIcon(image);
jLabel.setIcon(icon);
소켓을 통해 이미지를 전송하는 예
BufferedImage image = ....;
ImageIO.write(image, "PNG", socket.getOutputStream());
혹은 아래처럼 일반 바이트 스트림을 사용하여 이미지를 전송할 수도 있다
import java.io.*;
import java.net.*;
public class client{
public static void main(String args[]){
try {
Socket s = new Socket("x.x.x.x", 9500);
BufferedOutputStream imagebos = new BufferedOutputStream(s.getOutputStream());
int c =0, i=0;
File inputFile = new File("something.jpg");
FileInputStream infile = new FileInputStream(inputFile);
File outputFile = new File("outagain.jpg");
FileOutputStream outfile = new FileOutputStream(outputFile);
System.out.println("Client");
byte[] buf = new byte[4096];
int read = 0;
while((read = infile.read(buf,0,buf.length))!=-1){
imagebos.write(buf,0,read);
outfile.write(buf,0,read);
}
System.out.println(i+" Stuff");
infile.close();
imagebos.flush();
imagebos.close();
}
catch (IOException ioe) {
ioe.printStackTrace();
}
}
}
728x90
반응형
'Back-end > JAVA & Spring' 카테고리의 다른 글
[문제해결] Several ports (8005, 8080, 8009) required by Tomcat v7.0 Server at localhost are already in use. (0) | 2021.10.05 |
---|---|
[Java/jsp] 자바로 이미지를 base64 인코딩 소스로 변환하는 함수 (0) | 2021.10.01 |
[Java] StringUtils.isBlank 와 StringUtils.isEmpty 차이 (0) | 2021.09.30 |
[Java] base64 인코딩 디코딩 (encoding / decoding) (0) | 2021.09.30 |
base64인코딩한 이미지를 디코딩하여 저장 (0) | 2021.09.30 |
댓글