이전글에서 계속


2. 그런다고 압축을 제대로 하지도 않음


아래 보이는 그림을 보자.



한/글에서 추출한, 압축된 BMP의 압축을 풀었다 다시 압축한 결과이다.


압축된 원본의 크기는 96KB이고, 압축을 풀자 1,148KB의 BMP가 나왔다.

이를 JPEG로 변환(Q=95)하자 88KB가 되었다.

즉, JPEG로 변환하자 8% 정도 크기가 줄어든 것이다.


그런데, 웃긴 것은 1,148KB의 BMP를 zlib로 다시 압축하자 59KB[각주:1]가 되었다는 것이다.

(level은 기본값인 Z_DEFAULT_COMPRESSION 적용)


대체 압축 라이브러리를 어떻게 적용한 것인지 모르겠다.




한/글의 이미지 처리는 커다란 개선의 여지가 있다.

무엇보다 포함된 이미지가 BMP인 경우 PNG로 자동변환해주는 기능이 필요하다.

옵션으로 (더 작은 파일을 위해) JPEG로 변환해주는 기능도 있으면 좋다.


이런 기본적인 처리는 배제한 채 구현한 현재의 그림 줄이기아무짝에도 쓸모 없는 기능이다.



덧. 데이터 압축에 대해 한컴에 Q&A를 통해 질문을 했는데, 1주일째 답이 없음. ㅡ.ㅡ;



  1. 압축을 제대로 했다면 굳이 JPEG로 변환할 필요가 없었다는 뜻 [본문으로]
신고
  1. Favicon of http://oneniner.net BlogIcon oneniner 2012.08.13 11:41 신고

    오! 대단대단~
    드디어 한글 포맷에의 도전?

  2. Favicon of http://salm.pe.kr/ BlogIcon koc/SALM 2012.09.22 20:45 신고

    그래도 나름 열심히 하는 사람들이라는....

    전에 구결 문자의 코드 문제로 Q&A 올렸더니 3주 후에 연락이 왔었다는...
    그 동안 구결이 뭔지 몰라서 공부를 쪼~까 했다고 하더군요. (프로그래머가 갑자기 머리에 쥐 날 일 해버린 거죠. ㅋㅋ 결국 질문 내용이 무언지 이해하기 위해 공부한 시간이 한 2주 이상이라는 말... ㅡㅡa )
    덕분에 프로그래머에게서 직접 전화를 받는 영광을... 쿨럭... ^.^v

    덧//
    결국 버그는 아니었다는... 순전히 내 오해였다는...

    • Favicon of http://teus.me BlogIcon BLUEnLIVE 2012.09.23 07:02 신고

      맞습니다.
      이 글에선 좀 까긴 했지만, 마냥 까일만큼 나쁜 회사는 결코 아닙니다. ^^

  3. Plumberry 2012.12.31 16:43 신고

    안녕하세요? HWP 파일 보면서 뜯어보면서 같은 문제에 직면해서 인터넷을 뒤져보다 찾아오게 됐습니다. 한컴에 질문 올리신 것 결국 답변을 못받으신건가요? 한글 파일을 뜯을 필요가 있어서 한컴에 솔루션을 문의했더니 텍스트 추출기만 연당 천만원 달라고 하더군요. 이것 때문에 막아놓은게 아닌가 싶긴한데 난감하네요 ㅠㅠ

    • Favicon of http://teus.me BlogIcon BLUEnLIVE 2012.12.31 22:27 신고

      답은 들었습니다.
      적용을 해봐야 되는데, 귀차니즘으로 안 하고 있습니다.

      그런데, 제 글은 HWP 파일이 아니라 HwpML 파일에 대한 글입니다.
      이 점 참고하시길…

  4. count00 2013.11.09 17:10 신고

    안녕하세요. hml 파일의 bindata에서 bmp 파일을 추출하는데는 성공했습니다.
    문제는 compress=True 인 경우인데,
    (1) base64로 디코딩 한 후
    (2) 이 글을 참고하여 헤더를 붙이고, 꼬리 2byte를 짤랐습니다('789C'.decode("hex";)+data[:-2])
    그런데, incorrect data check에러가 계속 납니다.
    압축된 경우에 어떻게 파일을 추출하셨는지 여쭤봐도 될지요. 또는 제가 틀린 게 무엇일지 조언해 주시면 감사하겠습니다.

    • Favicon of http://teus.me BlogIcon BLUEnLIVE 2013.11.09 18:25 신고

      한컴에서 답변이 왔는데, 그렇게 하는 게 아니라네요.
      아래 글을 참고하시기 바랍니다. ^^

      http://teus.me/102

+ Recent posts