게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
mfc에서 zlib로 압축된 byte를 안드로이드에서 압축해제
게시물ID : programmer_7461짧은주소 복사하기
작성자 : 시로소사로소
추천 : 0
조회수 : 2390회
댓글수 : 2개
등록시간 : 2015/01/05 08:56:14
옵션
  • 본인삭제금지
이미지 byte를 zlib로 압축을 해서 안드로이드 쪽에서 압축을 해제하려고 합니다.

API문서를 보니

public Inflater (boolean noHeader)

Added in API level 1

This constructor allows to create an inflater that expects no header from the input stream.

Parameters
noHeader true indicates that no ZLIB header comes with the input.

 번역기를 돌려보니 대충

noHeader 부분이 참이면 더 ZLIB 헤더가 입력되어 없음을 나타냅니다.


이런식으로 나오더군요..

생성자에서 false 값을 넘겨준다면 압축해제 할때 넘겨주는 byte에 zlib의 헤더가 있다는 얘기이고 true라면 zlib의 헤더가 없다는 얘기로 이해하면 되는 건가요?

인터넷에서 검색해본 결과 zlib로 압축을 하면 압축된 byte에 zlib 헤더가 붙는다고 나와있습니다.

API 문서를 보고 zlib 헤더가 붙어있으니 안드 쪽에서도 압축을 해제할 수 있을 것이라고 생각했습니다.

생성자 부분에서 true로 값을 주면 

java.util.zip.DataFormatException: invalid code lengths set 에러가 나오고..

false 시엔 java.util.zip.dataformatexception incorrect header check 에러가 나옵니다.

Inflater inflater = new Inflater();
inflater.setInput(compressByte, 0, compressByte.length);
int decompressSize = 0;
try {
decompressSize = inflater.inflate(bitmapByte);
} catch (DataFormatException e) {
// TODO Auto-generated catch block
Log.i("decompressSize : ",decompressSize + "");
e.printStackTrace();
}
inflater.end();

아니면 JNI로 연동해야하는 건가요?
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호