Strict Standards: Non-static method Soojung::addReferer() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/settings.php on line 79

Warning: Cannot modify header information - headers already sent by (output started at /home/lifthrasiir/sites/sapzil.info/soojung/settings.php:79) in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Counter.class.php on line 63

Strict Standards: Non-static method Entry::getEntry() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/entry.php on line 51

Strict Standards: Non-static method Soojung::entryIdToFilename() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Entry.class.php on line 182

Strict Standards: Non-static method Soojung::queryFilenameMatch() should not be called statically in /home/lifthrasiir/sites/sapzil.info/soojung/classes/Soojung.class.php on line 55
TokigunStudio3 | 블로그: png 생성 성공!

내용으로 바로 넘어 가기


TokigunStudio3

228 / 3282   


더 이상 이 블로그는 운영되지 않습니다. 새 블로그로 가 주세요.

png 생성 성공!

2005/01/10 AM 01:55 | 개발 | 2 comments | 0 trackbacks | AllBlog: vote, to pocket

- 아래에서 deflate 알고리즘에서 명시적으로 압축 안 한다고 써 놓았더니 안 되었다고 했는데, 결국 deflate 알고리즘에서 압축 하기는 하되 "실제로는 그냥 원래 데이터를 마구 집어 넣는" 방법을 사용하기로 했다. 허프만 트리를 다 한 번씩 짜야 할 줄 알았는데 미리 지정된 코드를 사용할 수 있는 옵션이 있어서 아주 편하게 썼다. :)
- 그 다음 한참동안 머리를 아프게 했던 것이 비트 순서였는데, 이게 비트 스트림을 MSB(최상위 비트)부터 채우는 건줄 알았더니 LSB(최하위 비트)부터 채우는 것이었다. 한참동안 헤맸다. -_-;;;;;
- 이 상황에서 해 보니까 잘 나오길래 잘 되는 줄 알았는데, 크기가 커지니까 또 맛이 간다. 왜 그런 지 몰라서 한 두어 시간 정도 삽질했는데... 알고 보니까, 압축 과정에서 맨 끝에 Adler-32라는 방법으로 체크섬을 집어 넣어야 하는데... 계산 과정에서 overflow가 나서 제대로 계산이 안 되는 것이었다. OTL 오류 메시지는 "incorrent data check"이었는데 설마 체크섬이 잘못 계산되었으리라는 생각을 못 하고 삽질을 하다가 결국 libpng 소스, zlib 소스를 차례대로 뒤진 끝에 체크섬 오류 날 때 나는 거라는 걸 알게 되었다. -_-;;; (참고로 libpng 소스에는 저 메시지가 없다.)

그렇게 해서, 깔끔하게 png 파일 생성 성공! 이제 빨리 마저 코드 짜서 obfuscation collection에 올려야지 ;;;

덤: 코드 궁금하신 분은 여기에서 코드를 볼 수 있다. 그렇게 긴 건 아니지만 코드가 읽기 어려운 편인 게 문제-_-;;;;;

TrackBack URL: http://sapzil.info/soojung/trackback.php?blogid=298

Comment: 인클루드 (2005/01/10 PM 12:01)

쿨럭; 천재... =3
꼬랑지: <?php 로 써주세용! :twisted:

Comment: 토끼군 (2005/01/10 PM 02:09)

인클루드: 테스트 과정이니 <?로 일단 써 댔죠 ~_~ 물론 실제로는 <?php로 나올 겁니다.

Copyright (c) 1995-2005, Kang Seonghoon (Tokigun).