Page 331 - 완) I MDP 프로젝트 작품 보고서(전체과 1학년)1.6
P. 331
&& (numRead = urlStream.read(imageBytes, offset, imageBytes.length - offset)) >= 0) {
offset += numRead;
}
stringWriter = new StringWriter(128);
return imageBytes; // 받은 이미지를 리턴
}
@Override
public void run() {
while (processing && Wtrigger) {
try {
byte[] imageBytes = retrieveNextImage(); // 리턴 받은 이미지
ByteArrayInputStream bais = new ByteArrayInputStream(imageBytes); // 받은 이미지를 바이트 스트림으
로 변환
BufferedImage image = ImageIO.read(bais);// 이미지파일로 만듬
Image im = image.getScaledInstance(1280, 720, Image.SCALE_SMOOTH); // 이미지파일을 확대
jLabel1.setIcon(new ImageIcon(im)); //이미지 파일을 보여줌
} catch (SocketTimeoutException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
try {
urlStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
private int contentLength(String header) {
int indexOfContentLength = header.indexOf(CONTENT_LENGTH);
int valueStartPos = indexOfContentLength + CONTENT_LENGTH.length();
int indexOfEOL = header.indexOf('\n', indexOfContentLength);
String lengthValStr = header.substring(valueStartPos, indexOfEOL).trim();
int retValue = Integer.parseInt(lengthValStr);
return retValue;
}//헤더로부터 이미지 크기를 받아옴
}
○ 네트워크 통신을 이용한 제어(client)
탐사 로봇을 제어하는 client 소스이다.
import java.awt.AWTException;
import java.awt.Cursor;
import java.awt.Image;
import java.awt.Point;
import java.awt.Robot;
import java.awt.Toolkit;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.MouseWheelEvent;
import java.awt.image.BufferedImage;
import java.io.BufferedReader;
- 324 -