[자바] 이미지 전송 / 엔코딩 및 디코딩 / 통신 문제 - 다 물어보는거 아님 ㅋ
반월
이미지 전송을 할려고 하는데
일단 이미지는
BuffedImage 상태로 되어있고
딱히 방법이 없어서
엔코딩으로 Byte 배열을 생성해서 보낼려고 하는데 보시다 시피 제가 저렇게 짜고나서
생성된 byte 배열을 가지고 이미지를 그리면
안되ㄴㅔ요;;
방법아시는분 쫌 해결 좀 해주세요...
ByteArrayOutputStream baos = new ByteArrayOutputStream();
JPEGImageEncoder aa =JPEGCodec.createJPEGEncoder(baos);
JPEGEncodeParam param = aa.getDefaultJPEGEncodeParam ( gg.getBuffImage() );
param.setQuality ( 1.0f, false );
aa.setJPEGEncodeParam ( param );
aa.encode ( gg.getBuffImage() );
baos.close();
final byte[] img_data = baos.toByteArray();======================
또 있어요 ㅎㅎ 제가 저거로 하기전에는 오브젝트스트림으로 직렬화 해서 보내는데
참.~
안되네요 ㅋㅋ 답답하넹
일단 부분만보여드리면
----------------- Client 쓰레드 부분이고요~~
public void run() {
try {
int i=0;
ObjectOutputStream oos = new ObjectOutputStream(sok.getOutputStream());
while(sok.isConnected()){
System.out.print(=========\n);
oos.writeObject(IW);
Thread.sleep(2000);
gg.update(); ----- 이거는 이미지 를 뽑아서 저장하는거고요
IW.setImage(gg.getBuffImage()); ----- 이거는 직렬화시킬 객체에 새로운 이미지를 set 시키는거거요
}
} catch (Exception e) {
머 이런식으로 보내고
실제로 IW 객체의 이미지는 각각 다른 이미지가 들어있는것을 파일 입출력으로 확인했습니다.
---------------------서버 ---------------------------
public void run() {
try{
int i = 0;
sok = servsok.accept();
ObjectInputStream ois = new ObjectInputStream(sok.getInputStream());
while(sok.isConnected()){
System.out.print(========= + i + \n);
Thread.sleep(3000);
abbc = (ImageWrapper)ois.readObject(); -----클라잉ㄴ트 객체를 받았죠?
if (i 5){ ----- 그리고 확인을 위해 5개를 출력합니다.
ImageIO.write(abbc.getImage(), jpg, new File(aa+(i++)+.jpg));
System.out.print(======MAKE= + i + \n);
}
..
..
그런데 여기서는 5개다 첫 이미지만 나오게됩니다.
제가 i/O 를 잘못해서 그런건가요? 웬지 그런느낌이..;; 쓰레드는 둘다 위와 똑같습니다. 내용도 없고 ;;
아~ 이런데서 막히면 미칠꺼 같네요;;
혹시라도 이런게 귀찮으시고 내공~이 팍팍 이신분
간단히 이미지 전송에 대한 클래스 2개만 ;; 보여주세요.