freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于mfc的圖片瀏覽器的設計與實現(xiàn)(參考版)

2025-06-27 15:48本頁面
  

【正文】 //圖像顯示函數(shù) BOOL Draw(HDC hdc,int nDx,int nDy,int nDw,int nDh, int 。 BOOL SaveTga(LPCTSTR pszFileName)const。 BOOL ReadPcx(LPBYTE pBuffer,UINT uLength,int ndegree)。 //創(chuàng)建圖像解碼后的緩沖區(qū) BOOL ReadBmp(LPBYTE pBuffer,UINT uLength,int ndegree,BOOL isconvert)。 } } BOOL LoadImage(LPCTSTR pszFileName,int ndegree,BOOL isconvert)。 if(m_pPal) { delete [] m_pPal。 delete m_pGif。 endif delete m_pJpeg。 delete [] m_pImage。 //m_hBitmap中包含了m_pImage最初指向的區(qū)域 else if(m_bReadWithLibSupport) //如果使用了Lib Sources,這時m_pImage指 //向的是原來CJpeg類的一部分空間,m_pImage=NULL。 m_pPal=NULL。 m_pJpeg=NULL。 //的緩沖區(qū)使用位圖格式 endif public: LanImage() //構(gòu)造函數(shù) { memset(this,0,sizeof(LanImage))。 //指向調(diào)色板區(qū)域的指針 LanFormat m_eFmt。 // BOOL m_bReadWithLibSupport。 Int m_nOriginImage。 Int m_nOriginHeight。 //圖像文件大小 // //當被旋轉(zhuǎn)時保存原來的圖像可能被改變的信息 BYTE * m_pOriginImage。 //圖像數(shù)據(jù)的字節(jié)數(shù) int m_nPalette。 //圖像每像素占用的位數(shù) int m_nPitch。 //圖像顯示寬度 int m_nDrawHeight。 //圖像實際寬度 int m_nHeight。 //CJpeg類對象指針 CGif* m_pGif。LanImage類的詳細設計代碼如下:class LanImage{ public: BYTE * m_pImage。因此,設計一個LanImage類,其中包含一個字節(jié)型指針,指向圖像解碼后的數(shù)據(jù);該類中還包含圖像顯示和變換所必需的屬性以及對圖像進行操作的方法。1. 軟件核心數(shù)據(jù)結(jié)構(gòu)LanImage類由上面對圖像格式的分析可知,不同的圖像格式,其解碼和編碼方式有相當大的區(qū)別,故將不同圖像的解碼、編碼劃分為單獨的模塊;然而,不論原圖像是何種格式,在解碼之后都會暫時以RGB的顏色數(shù)據(jù)存儲在內(nèi)存中的一塊緩沖區(qū)中。 全屏狀態(tài)下的浮動工具條及右鍵菜單 詳細設計詳細設計的工作包括處理過程和代碼設計,即根據(jù)總體設計的每個功能模塊的要求,利用相應的開發(fā)工具設計出應用系統(tǒng)的過程。 非全屏狀態(tài)整體頁面。另外,在全屏顯示時提供浮動工具欄,并且在用戶區(qū)右擊鼠標可以彈出快捷菜單。2. 軟件界面設計根據(jù)軟件的需求分析及圖片瀏覽軟件的特點,本設計中軟件采用單文檔界面(SDI),包括標準菜單、工具欄和狀態(tài)欄。程序中文檔/。步驟3:文檔模板創(chuàng)建主框架窗口。步驟1:程序啟動時,WinMain()函數(shù)調(diào)用應用程序?qū)ο蟮腎nitInstance()函數(shù),并在其中創(chuàng)建文檔模板。1. 模塊劃分本設計的實現(xiàn)基于微軟的MFC應用程序框架,故軟件也采用了文檔(Document)/視圖(View)結(jié)構(gòu),并使用單文檔界面(Single Document Interface,簡稱SDI)。 總體設計在對整個開發(fā)系統(tǒng)進行全面分析調(diào)查的基礎(chǔ)上,制定出應用軟件的總體設計規(guī)劃,這對建立一個應用系統(tǒng)來說是必須的,也是全面展開開發(fā)工作的重要基礎(chǔ)。提示:軟件提供的顯示特效,由于其需要相對較為大量的運算,故對CPU性能要求較高,要想獲得理想的效果,建議CPU為PIII 800MHz以上。在查看圖片時,標題欄顯示當前打開的圖片的文件名;狀態(tài)欄從左到右依次顯示圖片的全路徑、當前的顯示比例、圖片文件的大小(KB)、圖像的大小、鼠標當前的坐標。在查看圖片時,可以選擇從當前目錄中刪除該圖片,并將其放入系統(tǒng)回收站中。在載入圖片時,提供“從上往下”、“從下往上”、“從左往右”、“從右往左”、“左上進入”、“左下進入”、“右上進入”、“右下進入”、“馬賽克”、“百葉窗”等顯示效果,并且可以由用戶選擇是否使用及使用哪個效果,用戶也可以選擇讓系統(tǒng)隨機選擇效果。同時,在全屏幕瀏覽時,在屏幕右上角顯示一個浮動工具條,提供“停止幻燈片播放”、“上一張”、“下一張”、“逐漸放大”、“逐漸縮小”、“適合屏幕大小”、“原始大小”及“退出全屏瀏覽”的功能。軟件提供“上一張”、“下一張”的功能,即在打開一幅圖像后,可以不再使用“打開”命令而用鼠標單擊“上一張”按鈕、“下一張”按鈕或按鍵盤上的Page Up鍵、Page Down鍵直接瀏覽當前圖片所在文件夾中的其他圖片。旋轉(zhuǎn)。、逆時針90186。在查看一幅圖像時,可以逐漸放大、縮??;可以直接調(diào)整圖像顯示大小到適合屏幕或恢復為原始狀態(tài);可以直接將顯示大小調(diào)整為原圖像的50%、75%、150%、200%。 需求分析1. 功能需求本設計將要實現(xiàn)的是一個單機圖片瀏覽軟件,從其目標功能及特點分析,將本軟件功能劃分如下:可以打開BMP、PCX、TGA、JPEG及GIF圖像。 第4章 系統(tǒng)的設計與實現(xiàn)在整個畢業(yè)設計期間,我通過需求分析、總體設計、詳細設計三個階段完成了整個設計過程。GIF圖像的文件結(jié)構(gòu)中,除了上面討論的幾部分以外,在89a版本中,還可以有圖形控制擴展(Graphic Control Extension)、注釋擴展(Comment Extension)、圖形文本擴展(Plan Text Extension)、應用程序擴展(Application Extension)等。l 第3通道(Pass3)提取從第2行開始每隔4行的數(shù)據(jù)。創(chuàng)建4個通道(Pass)保存數(shù)據(jù),每個通道提取不同行的數(shù)據(jù),方法如下:l 第1通道(Pass1)提取從第0行開始每隔8行的數(shù)據(jù)。連續(xù)方式按從左到右、從上到下的順序排列圖像的光柵數(shù)據(jù)。l 圖像數(shù)據(jù):由一個或幾個數(shù)據(jù)塊(Data Subblocks)組成。(5)基于顏色列表的圖像數(shù)據(jù)(TableBased Image Data)圖像數(shù)據(jù)由兩部分組成,即LZW最小編碼長度(LZW Minimum Code Size)和圖像數(shù)據(jù)(Image Data)。如果一個GIF文件既沒有提供全局顏色列表,也沒有提供局部顏色列表,則可以自己創(chuàng)建一個顏色列表,或使用系統(tǒng)的顏色列表。(4)局部顏色列表(Local Color Table)如果上面的局部顏色列表標志值為1,則需要在這里(緊跟在圖像標識符之后)定義一個局部顏色列表以供緊接著它的圖像使用。(3)圖像標識符(Image Descriptor)由于一個GIF文件內(nèi)可以包含多幅圖像,故一幅圖像結(jié)束之后緊接著是下一幅圖像的標識符,圖像標識符以0x2C(“,”)字符開始,定義緊接著它的圖像的性質(zhì),包括圖像相對于邏輯屏幕邊界的偏移量、圖像大小以及有無局部顏色列表和顏色列表大小,由10個字節(jié)組成。 GIF文件的邏輯屏幕標識符其中,m為全局顏色列表標志(Global Color Table Flag),當值為1時表示有全局顏色列表,pixel值有意義;CR為顏色深度(Color Resolution),CR+1確定圖像的顏色深度;s為分類標志(Sort Flag),如果值為1則表示全局顏色列表分類排列;pixel為全局顏色列表大小,pixel+1確定顏色列表的索引數(shù)(2的pixel+1次方)。文件版本號也由3個字節(jié)組成,可以為87a或89a,GIF文件版本號87a表示GIF格式符合1987年5月發(fā)布的GIF標準;89a表示GIF格式符合1989年7月發(fā)布的GIF標準。1. 文件頭(Header)GIF文件頭包括GIF署名(Signature)和版本號(Version)兩部分。l 文件終結(jié)符只有一個值為0x3B的字符“。l 文件頭包含GIF文件署名(Signature)和版本號(Version)。數(shù)據(jù)塊的第一個字節(jié)存儲這個數(shù)據(jù)塊大小(字節(jié)數(shù)),但數(shù)據(jù)塊的大小不包括這個字節(jié)。l 數(shù)據(jù)塊只包含一些8bit的字符流,由它前面的控制塊來決定它的功能。GIF文件內(nèi)部是按塊劃分的,包括控制塊(Control Block)和數(shù)據(jù)塊(Data Subblocks)兩種。GIF文件內(nèi)部分成許多存儲塊,用來存儲多幅圖像或者是決定圖像表現(xiàn)行為的控制塊,可用于實現(xiàn)動畫和交互式應用。GIF圖像是基于顏色表存儲的,即圖像中每一點的存儲數(shù)據(jù)是該點的顏色對應于顏色列表(即調(diào)色板)的索引值。本設計就使用了Independent JPEG Group的Thomas G. Lane編寫的JPEGLIB2。在壓縮率小于40:1時,人眼基本上分辨不出圖像的效果變化,可認為是“主觀無失真壓縮”。Q因子越大,量化后的0值越多,壓縮比越大,因此Q因子決定著JPEG的壓縮比。Q因子用來確定原始圖像的采樣精度,并產(chǎn)生一個JPEG量化矩陣,即:式中QM[i,j]為量化矩陣,Q是量化因子,V[i,j]是圖像缺省清晰度表。JPEG標準定義了兩種基本的壓縮算法,即基于空間線性預測技術(shù)差分脈沖碼調(diào)制DPCM(Differential Pulse Code Modulation)的無失真壓縮算法和基于離散余弦DCT(Discrete Cosine Transform)的有失真壓縮算法。l 無失真的預測編碼:采用幀內(nèi)預測編碼及哈夫曼編碼(或算術(shù)編碼),可保證重建圖像與原始圖像完全一樣(即均方誤差為零)。它采用88像素自適應DCT算法量化以及哈夫曼(Huffman)型的熵編碼器。JPEG標準包括以下4種運行模式。l 譯碼器將壓縮的圖像數(shù)據(jù)還原成原始圖像數(shù)據(jù)。JPEG標準包括3部分,即編碼器、譯碼器和交換格式。(由于硬件上的原因)有的時候TGA 24類型的圖像也像TGA 32類型的圖像那樣存儲 JPEG圖像JPEG的全稱是“聯(lián)合圖片專家組(Joint Photographic Experts Group)”,是由該專家組制訂的用于連續(xù)色調(diào)(包括灰度和彩色)靜止圖像的壓縮編碼標準。(2)2字節(jié)表項中,兩個字節(jié)分解成如下形式:arrrrrgg gggbbbbb,但是,由于低位在前,高位在后的存儲順序,從文件中讀出表項時,將先讀入gggbbbbb而后讀入arrrrrgg;a表示屬性位。顏色表項自身有2字節(jié)、3字節(jié)或4字節(jié)。0:n   n   n   n   n   n   n。1 bit id:7位的像素個數(shù)減1。1:c   c   c   c   c   c   c。1 bit id:7位的重復記數(shù)減1。本區(qū)域給出了(寬度)(高度)個顏色表索引,這些索引存放在數(shù)據(jù)包中;有兩種類型的數(shù)據(jù)包:runlength數(shù)據(jù)包以及未加工的數(shù)據(jù)包,每種類型的數(shù)據(jù)包含有1字節(jié)的頭信息(其中指出了數(shù)據(jù)包類型和數(shù)目),其后是可變長度的數(shù)據(jù)域,頭信息中最高位為1表示runlength類型的數(shù)據(jù)包,當它為0時,表示未加工的數(shù)據(jù)包。如果需要存儲更多信息,可以放在圖像數(shù)據(jù)之后可變可變顏色表數(shù)據(jù)。包含一個自由格式的,長度是圖像記錄塊偏移0處的字節(jié)中的值。以像素為單位,圖像寬度的整型(低位高位)值142圖像高度。圖像左下角X坐標的整型(低位高位)值 (續(xù)表)偏移(字節(jié))長度(字節(jié))描述102圖像Y坐標起始位置。顏色表的表項總數(shù),整型(低位高位)71顏色表表項的位(bit)數(shù)。如果顏色表類型字段為0則被忽略;否則描述如下32顏色表首址。由于本格式是無顏色表的,因此此項通常被忽略21圖像類型代碼。 游程長度編碼的RGB TGA圖像格式說明偏移(字節(jié))長度(字節(jié))描述01圖像信息字段(見本子表的后面)的字符數(shù)。0:n   n   n   n   n   n   n。1 bit id:7位的像素個數(shù)減1。1:c c c c c c c。1 bit id:7位的重復記數(shù)減1。每種類型的數(shù)據(jù)包含有1字節(jié)的頭信息(其中指出了數(shù)據(jù)包類型和數(shù)目),其后是可變長度的數(shù)據(jù)域,頭信息中最高位為1表示runlength類型的數(shù)據(jù)包,當它為0時,表示未加工的數(shù)據(jù)包。(3)2字節(jié)表項中,兩個字節(jié)分解成如下形式:arrrrrgg gggbbbbb,但是,由于低位在前,高位在后的存儲順序,從
點擊復制文檔內(nèi)容
法律信息相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1