개발121 [알고리즘]허프만 코드 알고리즘을 이용한 압축 프로그램 소스코드(3/3) - DeCompressor.cpp 압축을 해제하는 코드입니다. 이 코드에서도 'huffman.h'를 이용해도 되지만, 별로 많은 소스를 필요로 하지 않아서 그냥 자체 제작했습니다. 해제 코드는 압축 코드보다 훨씬 더 간단합니다. 압축할 때 생겨난 '파일명.huf'파일과 '파일명.cmp'파일이 있어야 하며, 해제할 파일명 입력할 때 '파일명.cmp'를 입력합니다. 출력 파일은 '파일명.cmp.ucp'입니다.// DeCompressor.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include ///////////////////////////////////////////////허프만 트리 관련 //////////////////////////////////// //허프만.. 2008. 12. 16. [알고리즘]허프만 코드 알고리즘을 이용한 압축 프로그램 소스코드(2/3) - Compressor.cpp 원래는 'huffman.h'만 올리려고 했는데, 파일을 쓰고 읽는 과정에 어려운 부분이 많이 있어서 함께 올립니다. 기본적인 구조는, 파일을 8bit씩 끊어서 입력받아 그 자료를 바탕으로 허프만 트리를 작성하는 것입니다. 이 때 파일의 끝을 나타내기 위해서 '256' 즉 '100000000'을 빈도수 '1'로 해서 저장합니다. 이 코드의 입력은 '파일명' 이구요, 출력은 '파일명.huf'와 '파일명.cmp'입니다. '.huf'파일은 txt로 저장되기 때문에 메모장에서 확인 가능합니다. 나머지는 소스의 주석을 보면 알 수 있을 것 같네요 ^^ // Compressor.cpp : 콘솔 응용 프로그램에 대한 진입점을 정의합니다. // #include "stdafx.h" #include #include #inc.. 2008. 12. 16. [알고리즘]허프만 코드 알고리즘을 이용한 압축 프로그램 소스코드(1/3) - huffman.h 허프만 코드 알고리즘에 대해서는 아시는 분들은 많이 계시리라 생각합니다. 그런데 막상 그 개념을 소스코드로 작성하려고 하면 많이 복잡하고 스트레스도 받고 그렇죠? 저 또한 과제로 해야하는 상황이 생겨서 하게 되었습니다. 뭐 복잡하지만 상당히 재밌는 과정이었죠 ^^ (이 글은 'C언어'를 기준으로 작성되어 있으며, Visual Studio 2008에서 작업했습니다. 코드를 이해하기 위해서는 허프만 트리에 대한 기본 개념이 있어야 할 것입니다. 그리고, 압축 알고리즘을 구현하는 최적화 된 코드가 아님을 미리 밝힙니다.) 허프만 트리를 만들기 위해서는 빈도수를 바탕으로 해서 가장 작은 수부터 가져와서 그 값들을 자식으로 갖는 노드를 만들고 새로 생성된 그 노드는 각 자식노드의 빈도수를 더한 합으로 나타내야 합.. 2008. 12. 16. [C#]컨트롤에 반투명한 그림자 넣기 Microsoft Word 같은 프로그램을 사용하다 보면 종이 뒤에 그림자가 있습니다. 다들 한 번쯤은 보셨겠죠? 그 효과를 만들어 보고자 합니다. CodeProject에서 이와 관련된 문서를 찾았는데요~ 일단 링크를 걸었습니다. 그리고 이 작업에 사용된 이미지 파일들은 'Resources.zip'이라는 이름으로 첨부했습니다. 코드프로젝트에서 사용한 코드와 제 코드는 방식이 약간 다릅니다. 이미지만 가져와서 사용하고 코드는 그냥 제가 작성했거든요 대충 보니까 링크된 문서의 코드는 Panel을 하나 만들어서 그 안에 그림자를 그려 넣은 듯 하구요~ 제가 만든 코드는 Panel의 모서리에 맞춰서 해당 Panel을 가지고 있는 Parent객체에 그려 넣은 것입니다. 하지만 작성해 놓고 보니까 비슷하더 라구요~.. 2008. 9. 27. 이전 1 ··· 25 26 27 28 29 30 31 다음