• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            hdqqq

              C++博客 :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
              35 隨筆 :: 0 文章 :: 104 評(píng)論 :: 0 Trackbacks

            ?

            /*

            ??? Zlib 是常用的壓縮庫(kù),在很多平臺(tái)上使用,是用c和部分匯編完成的,提供的是基于c接口的使用函數(shù)

            zlib 的contrib中提供了三種基于iostream的使用方式.

            ?

            ?? 在MFC中,經(jīng)常使用CFile進(jìn)行文件的讀寫操作,在這種時(shí)候,如果想使用Zlib的話,要么使用zlib自身

            提供的操作函數(shù),要么使用zlib contrib中iostream操作流.或者自己對(duì)zlib進(jìn)行封裝.

            ?

            所以我對(duì)zlib進(jìn)行了封裝,便于使用.

            ?

            Filter 功能類

            zlib_compress_filter<int 壓縮級(jí)別> 實(shí)現(xiàn)壓縮功能類,根據(jù)模板參數(shù)實(shí)現(xiàn)不同的壓縮程度.??

            zlib_uncompress_filter<int >? 實(shí)現(xiàn)解壓功能類,模板參數(shù)總為 1


            Filter類自身帶有 緩沖區(qū), 可以存儲(chǔ)處理后的數(shù)據(jù),用戶可以直接通過(guò)這兩個(gè)Filter類對(duì)數(shù)據(jù)進(jìn)行

            壓縮和解壓縮操作.

            ?

            Pipe類

            ??? 為了和MFC中的CFile類進(jìn)行配接,對(duì)數(shù)據(jù)進(jìn)行處理后,把CFile作為最后接受數(shù)據(jù)的容器,類似于

            Boost庫(kù)中的Sink,提供了一個(gè)模板實(shí)現(xiàn)的BufferPipe模板類.

            ?

            template <typename filter,typename buffer_type, typename next_pipe> class BufferPipe;

            模板參數(shù):

            filter? 數(shù)據(jù)處理用filter

            buffer_type 緩沖類型

            next_pipe 后面接的pipe,可以是CFile,用于最終寫入磁盤.

            ?

            ?

            Pipe后還可以接一個(gè)Pipe,可以象一個(gè)管子連接起來(lái),并且,以后通過(guò)擴(kuò)充filter可以實(shí)現(xiàn)不同的數(shù)據(jù)操作功能.

            ?

            提供了一個(gè)測(cè)試代碼

            編譯后一個(gè)對(duì)話框 四個(gè) 按鈕

            ?

            按鈕1 將 c:\a.bmp? 壓縮為 c:\b.cr???? 使用filter

            按鈕2 將 c:\b.cr? 解壓縮為 c:\c.bmp?? 使用filter

            按鈕3 將 c:\a.bmp 壓縮為 c:\d.cr?? 使用pipe功能

            按鈕4 將 c:\a.bmp? 通過(guò)壓縮和解壓縮管道, 存儲(chǔ)為 e.bmp應(yīng)該和a.bmp相同,用于測(cè)試管道的連接功能.?
            ?

            代碼位置:

            http://m.shnenglu.com/files/hdqqq/z_file.rar

            編譯需要的zlib 請(qǐng)自行到該庫(kù)的網(wǎng)站下載.

            這個(gè)文章實(shí)現(xiàn)的和boost中的filter類似的功能,可以和MFC配合使用.

            不足:

            fiter 使用的 buf_holder寫得比較粗糙,以后有機(jī)會(huì)的話,改進(jìn).

            */

            ?

            posted on 2006-09-01 13:03 hdqqq 閱讀(6030) 評(píng)論(7)  編輯 收藏 引用 所屬分類: c/c++

            評(píng)論

            # re: zlib 壓縮管道 2006-09-03 16:58 chenger
            為什么要把決定壓縮程度的參數(shù)作為模板參數(shù)呢?看不出有這個(gè)必要,而且不直觀  回復(fù)  更多評(píng)論
              

            # re: zlib 壓縮管道 2006-09-03 18:05 hdqqq_
            壓縮級(jí)別 總是要在某個(gè)地方設(shè)置的,作為模板參數(shù),是為可可以在編譯期就確定下來(lái),當(dāng)然,也可以有別的做法.  回復(fù)  更多評(píng)論
              

            # re: zlib 壓縮管道 2006-10-07 00:00 ar4ever
            如何在VC6.0中使用Zlib庫(kù)呢,我使用的時(shí)候老是出錯(cuò)。說(shuō)是zlib1.dll是錯(cuò)誤的。  回復(fù)  更多評(píng)論
              

            # re: zlib 壓縮管道 2006-11-22 16:28 hdqqq
            @ar4ever
            你可以在zlib的官方網(wǎng)站下載它的壓縮包,以zlib1.2.3為例,解壓縮后,其目錄下的project子目錄下,有vc 6 的工程文件,有8個(gè)項(xiàng)目,分別是匯編和c代碼的dll和lib輸出的工程,你編譯全部后,把你要用的lib 和頭文件 zlib.h 放到vc的include 和lib設(shè)置中就可以了.  回復(fù)  更多評(píng)論
              

            # re: zlib 壓縮管道 2009-04-07 16:13 guest
            壓縮級(jí)別作為運(yùn)行時(shí)參數(shù)比較好,這樣程序就稍微靈活了。  回復(fù)  更多評(píng)論
              

            # re: zlib 壓縮管道 2009-06-10 14:25 ayang
            你這樣的代碼方式屬于什么風(fēng)格的?  回復(fù)  更多評(píng)論
              

            亚洲精品无码久久久久sm| 久久免费视频观看| 久久久久久国产a免费观看黄色大片 | 国产成人久久精品二区三区| 日韩一区二区久久久久久| 欧美性大战久久久久久| 亚洲AV日韩精品久久久久久| 99久久精品国产一区二区| 色狠狠久久综合网| 久久精品国产一区二区三区日韩| 久久综合伊人77777| 久久男人Av资源网站无码软件| 韩国免费A级毛片久久| 亚洲国产婷婷香蕉久久久久久| 久久亚洲AV成人出白浆无码国产| 国产精品VIDEOSSEX久久发布| 久久久噜噜噜久久中文字幕色伊伊| 久久91亚洲人成电影网站| 久久久久久久久波多野高潮| 国产午夜精品久久久久九九电影| 一本色道久久99一综合| 欧美粉嫩小泬久久久久久久| 国产精品久久国产精品99盘 | 中文精品久久久久国产网址| 国产偷久久久精品专区 | 久久青青草原精品国产| 欧美一级久久久久久久大| 久久96国产精品久久久| 久久亚洲精品无码AV红樱桃| 人妻无码精品久久亚瑟影视 | 色噜噜狠狠先锋影音久久| 久久久久亚洲av综合波多野结衣 | 一本久道久久综合狠狠爱| 色婷婷久久久SWAG精品| 久久国产免费直播| 丁香五月综合久久激情| 人人狠狠综合久久亚洲88| 久久青青草原国产精品免费| 国产午夜精品理论片久久影视| 99999久久久久久亚洲| 久久国产一区二区|