마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

tcpip 이미지 출력 도와주세요...

0 추천

제가 임베디드에서 이미지를 캡처해서 전송하려고 하는데요

현재 string 으로 전송하고 byte 로 받는 부분을 구현 중 입니다..

이미지를 전송하는 C 코드에서는 아래와 같이 코딩했구요

 

file = fopen("test.jpg", "rb");

fseek(file, 0, SEEK_END);

fsize = ftell(file);

fseek(file, 0, SEEK_SET);

 

fsize2 = htonl(fsize);

send(socket, &fsize2, sizeof(fsize), 0);

 

while(nsize != fsize){

  fpsize = fread(buf, 1, 16, file);

  sprintf(str, "%d %d %d %d %d %d %d %d %d %d %d %d %d %d %d %d\n", buf[0], buf[1], buf[2], buf[3], buf[4], buf[5], buf[6], buf[7], buf[8], buf[9], buf[10], buf[11], buf[12], buf[13], buf[14], buf[15]);  

  nsize = nsize+fsize;

  send(socket, buf, fpsize, 0);

}

 

sprintf 에서 str 에 문자열을 넣는데 0, 1, 2 이렇게 정의한 건 일단 이미지가 출력되는지 확인하려고 했습니다.

 

근데 SkImageDecoder::Factory returned null 이런 메시지가 나오면서 출력이 되지 않네요 ㅠㅠ

제발 도와주세요... 한달 넘게 하고 있어요..ㅜ

 

final Handler Recv = new Handler() {
   public void handleMessage(Message msg) {
      updataThread();
   }

   private void updataThread() {

      data_trim = data.trim();

      ByteArrayOutputStream stream = new ByteArrayOutputStream();
      try {
         stream.write(data_trim.getBytes());
      } catch (IOException e) {
         e.printStackTrace();
      }
      byte[] buffer = stream.toByteArray();
      Bitmap bitmap = BitmapFactory.decodeByteArray(buffer, 0, buffer.length); //BitmapFactpry로 이미지 변환
      image.setImageBitmap(bitmap); //이미지 출력    
     }
};
라즈베리파이 (340 포인트) 님이 2016년 7월 27일 질문

1개의 답변

0 추천
코드가 다 나온게 아니긴 합니다만.

올려주신 내용만으로는 보내는 쪽은 문제 없는 듯 하고,

 받는쪽이 이상합니다.

보내는 쪽에서  send로 size를 먼저 보내고, 이후 이미지 정보를 보내신 듯 한데,

java쪽에서 size를 read하는 곳이 안보입니다.
익명사용자 님이 2016년 7월 28일 답변
댓글 달아주셔서 감사합니다. ㅠㅠ
말씀하신 부분 계속 수정하고 있는데 어떻게 수정해야할지 모르겠어요.. 조금만 도와주시면 안될까요? ...
전체 소스 부분은 너무 길어서 http://tjddnjs1027.blog.me/220774140185 블로그에 추가하였습니다..

일단 초록색 라인은 데이터를 수신하기 위한 소켓 라인이구요
상단 부에 회색으로 라인되어 있는 부분이 이미지 처리하기 위한 부분 입니다..
도와주세요...ㅠㅠ
...