이미지 byte를 zlib로 압축을 해서 안드로이드 쪽에서 압축을 해제하려고 합니다.
API문서를 보니
public Inflater (boolean noHeader)
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로 연동해야하는 건가요?