좋아, 이렇게 하루 종일 내 뇌를 두드리고 있습니다. 비트 맵을 캔버스에서 1bpp (픽셀 당 비트) 비트 맵 파일로 변환하여 안드로이드에서 어떻게 물리적으로 저장할 수 있는지 알아 내려고합니다.안드로이드에서 1bpp (비트 당 픽셀) 비트 맵 만들기
지금까지 비트 맵을 반복하여 결과 픽셀 값의 int []를 1 또는 0으로 만들었습니다. 그러나 다음 질문은 내가 그걸 어떻게해야합니까? 내가 할 노력은 무엇
는나는 그것에서 파일을 가져
int[] bits = // populated earlier
byte[] bmp = new byte[bits.length/8];
int byteindex = 0;
int bitindex = 0;
for (int i=0; i<bits.length; i++) {
if (bits[i] == 1)
// set to 1
else
// set to 0
if (bitindex++ == 8) {
bitindex = 0;
byteindex++;
}
}
OutputStream out = new FileOutputStream("/mnt/sdcard/dynbmp.bmp");
out.write(bmp);
out.close();
같은했지만, 그것은 분명히 올바른 BMP 파일이 아닙니다. 그것이 무엇인지 누가 압니다. 비트 바이트와 이미징 지식이 부족하여 용서해야하지만, 어디서 망쳐 놓을까요? 나는 완전히 잘못된 생각인가? 일부 헤더 정보가 누락 되었습니까?
당신이 덮여 안드로이드면을했습니다. 이제 BMP 파일 구조에 대해 읽고 데이터 용으로 재현하십시오. 파일의 바이트 혼란이 아닙니다. http://en.wikipedia.org/wiki/BMP_file_format –