안드로이드 개발 질문/답변
(글 수 45,052)
176X144 사이즈의 RGB Raw Data를 JPG파일로 저장을 하려고 합니다.
저장까지 되는데 파일이 깨져서 나오네요..형체만 알아볼 정도입니다.
코드는 아래와 같습니다.
고수님들의 조언 부탁드립니다.
private static final int RGB565_QCIF_BUFFER_SIZE = 50688; //Raw Data 배열의 크기
short[] data565 = new short[RGB565_QCIF_BUFFER_SIZE/2];
byte [] remoteRGB565ImageBuffer = new byte[RGB565_QCIF_BUFFER_SIZE]; //RGB565 Raw Data
for(i=0 ; i<RGB565_QCIF_BUFFER_SIZE ; i++)
castremoteRGB565Image1[i] = (short)remoteRGB565ImageBuffer[i]; //RGB Raw data를 short형으로 바꾼다.
for(i=0, j=0; i<RGB565_QCIF_BUFFER_SIZE ; i++, j++)
{
data565[j] = (short) (((castremoteRGB565Image1[i] << 8) & 0xff00) | (castremoteRGB565Image1[i+1] & 0xff));
i++;
}
bmp = Bitmap.createBitmap(176, 144, Bitmap.Config.RGB_565);
bmp.copyPixelsFromBuffer(makeBuffer(data565, 176, 144));
bmp.compress(Bitmap.CompressFormat.JPEG, 75, filestrm1);
private static ShortBuffer makeBuffer(short[] src, int w, int h) {
ShortBuffer dst = ShortBuffer.allocate(w*h);
dst.put(src);
dst.rewind();
return dst;
}
저장까지 되는데 파일이 깨져서 나오네요..형체만 알아볼 정도입니다.
코드는 아래와 같습니다.
고수님들의 조언 부탁드립니다.
private static final int RGB565_QCIF_BUFFER_SIZE = 50688; //Raw Data 배열의 크기
short[] data565 = new short[RGB565_QCIF_BUFFER_SIZE/2];
byte [] remoteRGB565ImageBuffer = new byte[RGB565_QCIF_BUFFER_SIZE]; //RGB565 Raw Data
for(i=0 ; i<RGB565_QCIF_BUFFER_SIZE ; i++)
castremoteRGB565Image1[i] = (short)remoteRGB565ImageBuffer[i]; //RGB Raw data를 short형으로 바꾼다.
for(i=0, j=0; i<RGB565_QCIF_BUFFER_SIZE ; i++, j++)
{
data565[j] = (short) (((castremoteRGB565Image1[i] << 8) & 0xff00) | (castremoteRGB565Image1[i+1] & 0xff));
i++;
}
bmp = Bitmap.createBitmap(176, 144, Bitmap.Config.RGB_565);
bmp.copyPixelsFromBuffer(makeBuffer(data565, 176, 144));
bmp.compress(Bitmap.CompressFormat.JPEG, 75, filestrm1);
private static ShortBuffer makeBuffer(short[] src, int w, int h) {
ShortBuffer dst = ShortBuffer.allocate(w*h);
dst.put(src);
dst.rewind();
return dst;
}