제가 임베디드에서 이미지를 캡처해서 전송하려고 하는데요
현재 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); //이미지 출력
}
};