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

正文內(nèi)容

基于mfc的圖片瀏覽器的設(shè)計(jì)與實(shí)現(xiàn)(精品推薦免費(fèi)分享?。?全文預(yù)覽

  

【正文】 使用的位( bit)被認(rèn)為是屬性位 ( 1) 4 字節(jié)表項(xiàng)中,字節(jié) 1 表示 BLUE,字節(jié) 2 表示 GREEN,字節(jié) 3表示 RED,字節(jié) 4 表示屬性 ( 2) 3 字節(jié)表項(xiàng)中各字節(jié)依次對(duì)應(yīng) BLUE、 GREEN、 RED ( 3) 2 字節(jié)表項(xiàng)中,兩個(gè)字節(jié)分解成如下形式: arrrrrgg gggbbbbb,但是,由于低位在前,高位在后的存儲(chǔ)順序,從文件中讀出表項(xiàng)時(shí),將先讀入 gggbbbbb 而后讀入 arrrrrgg, a 表示屬性位 可變 可變 圖像數(shù)據(jù)字段。以像素為單位,圖像高度的整型(低位 高位)值 16 1 圖像每像素存儲(chǔ)占用位( bit)數(shù) 17 1 圖像描述符字節(jié) bits 3~0:每像素的屬性位( bit)數(shù) bit 4:保留,必須為 0 bit 5:屏幕起始位置標(biāo)志 0:原點(diǎn)在左下角 1:原點(diǎn)在左上角 Truevision 圖像必須為 0 bits 7~6:交叉數(shù)據(jù)存儲(chǔ)標(biāo)志 00:無交叉 01:兩路奇 /偶交叉 10:四路交叉 11:保留 18 可變 圖像信息字段。 16 代表 16 位 TGA、 24 代表 24 位 TGA、32 代表 32 位 TGA 8 10 圖像規(guī)格 8 2 圖像 X 坐標(biāo)的起始位置。本字段是 1 字節(jié)無符號(hào)整型,指出了圖像格式區(qū)別字段長(zhǎng)度,其取值范圍是 0 到 255,當(dāng)它為 0 時(shí)表示沒有圖像的信息字段 1 1 顏色表的類型。 ? 11:壓縮的,黑白圖像。 ? 2:未壓縮的, RGB 圖像。 TGA 也包含了多種變體, TGA 文件的第三個(gè)字節(jié)用來區(qū)別不是 TGA 的文件。 ( 3)“ CGA”調(diào)色板 這種調(diào)色板現(xiàn)已過時(shí),在 PCX 的版本 5 及更高的版本中不再使用。因此,值為 n 的像素指向調(diào)色板中的“ EOF768+ 3 n”處;后面 3 個(gè)字節(jié)分別為該像素紅、綠、藍(lán)的值。如果有一個(gè)色彩平面,則它們會(huì)在文件結(jié)尾處使 用 256 色的“ VGA”調(diào)色板。同樣,也沒有分隔符來標(biāo)識(shí)一個(gè)掃描行結(jié)束。 當(dāng)使用調(diào)色板時(shí),數(shù)據(jù)指調(diào)色板的索引值,它們構(gòu)成一個(gè)完整的圖像平面,即不會(huì)被分解為單獨(dú)的色彩平面。 3. PCX圖像數(shù)據(jù)的存儲(chǔ) 如果沒有使用調(diào)色板,則數(shù)據(jù)是實(shí)際的像素值;否則是調(diào)色板表項(xiàng)的索引值。在對(duì) PCX 進(jìn)行解釋時(shí),單靠讀取版本號(hào)是不夠的,最可靠的標(biāo)志是每像素的位數(shù)(文件頭的第 3 個(gè)字節(jié))和色彩平面數(shù)(文件頭的第 65 個(gè)字節(jié)),這兩個(gè)標(biāo)志與圖像色彩數(shù)的對(duì)應(yīng)關(guān)系如表 所示。如果版本號(hào)為 5,則文件末尾處 還有一個(gè)單一的位平面和一個(gè)RGB 值的 256 色調(diào)色板, 3 種原色各占 1 個(gè)字節(jié)。其中包含版本號(hào)、被打印或掃描圖像的分辨率(單位為每英寸點(diǎn)數(shù))、大?。▎挝粸橄袼?cái)?shù))、每掃描行字節(jié)數(shù)、每像素位數(shù)和彩色平面數(shù)等信息。 PCX 采用游程長(zhǎng)度編碼來壓縮數(shù)據(jù),但是有些情況下壓縮效率不 高,尤其是對(duì)于掃描圖像或視頻圖像。而它們的圖像位數(shù)據(jù)的存儲(chǔ)方式是完全一樣的。 ? 當(dāng) biBitCount=24 時(shí), 1 個(gè)像素占 3 個(gè)字節(jié)。 位圖數(shù)據(jù)記錄了位圖的每一個(gè)像素值,記錄順序是在掃描行內(nèi)從左到右、掃描行之間從下到上。 位圖信息頭和顏色表組成位圖信息, BITMAPINFO 結(jié)構(gòu)定義如下: typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader。 //藍(lán)色的亮度(值范圍為 0~ 255) BYTE rgbGreen。 //位圖垂直分辨率,每米像素?cái)?shù) DWORD biClrUsed。 //每個(gè)像素所需的位數(shù),必須是 1(雙色)、 //4( 16色)、 8( 256色)或 24(真彩色)之一 DWORD biCompression。 //本結(jié)構(gòu)所占用字節(jié)數(shù) LONG biWidth。 //位圖文件保留字,必須為 0 UINT bfReserved2。 1. BMP文件頭 BMP 文件頭含有 BMP 文件的類型、文件的大小、位圖文件的保留字、位圖數(shù)據(jù) 距文件頭的偏移量等信息。相對(duì)于 DDB 而言, DIB 是一種外部位圖格式,經(jīng)常存儲(chǔ)為常見的以 BMP 為后綴的位圖文件(有時(shí)也以 DIB 為后綴)。 Windows 只能保證系統(tǒng)調(diào)色板的前 20 種顏色穩(wěn)定不變,所以 DDB 只能保證正確顯示少于 20 色的位圖。 //顏色層數(shù) BYTE bmBitsPixel。 //位圖類型,必須設(shè)為 0 int bmWidth。 BMP圖像 BMP 圖像,即通常所說的位圖( Bitmap),是 Windows 系統(tǒng)中最為常見的圖像格式。 ? 有失真編碼(不可逆編碼):編碼數(shù)據(jù)進(jìn)行解碼后的數(shù)據(jù)與編碼前的數(shù)據(jù)有一定的偏差或失真,但在視覺效果上基本相同。由于數(shù)據(jù)編碼和數(shù)據(jù)解碼是互逆的過程,只要研究好數(shù)據(jù)編碼就能處理好數(shù)據(jù)解碼。數(shù)據(jù)冗余一般有 4 種形式,即統(tǒng)計(jì)冗余、信息熵冗余、結(jié)構(gòu)冗余、知識(shí)冗余。 圖像的編碼和解碼 能夠?qū)?shù)據(jù)進(jìn)行壓縮并大大減少其數(shù)據(jù)量是因?yàn)閿?shù)據(jù)存在大量的數(shù)據(jù)冗余,即存在冗余的、可預(yù)測(cè)的和不必要的數(shù)據(jù)。數(shù)據(jù)壓縮技術(shù)是控制數(shù)據(jù)量 的基本技術(shù)。本設(shè)計(jì)所實(shí)現(xiàn)的圖片瀏覽軟件支持以下幾種圖像格式: BMP、 PCX、 TGA、 JPEG、 GIF。除此之外,用戶定義和注冊(cè)的消息、命令和控制通知都沒有默認(rèn)的處理函數(shù),需要在定義時(shí)聲明,一般根據(jù)其 ID 名稱來為函數(shù)命名。例如,消息 WM_PAINT 的處理函數(shù)在 CWnd 類中的聲明如下: afx_msg void OnPaint()。其基本格式如下: BEGIN_MESSAGE_MAP (classname, parentclassname) //{{AFX_MSG_MAP (classname) 條目宏 1 條目宏 2 條目宏 3 ???? //}}AFX_MSG_MAP END_MESSAGE_MAP () 其中 classname 為擁有消息映射的當(dāng)前類名, parentclassname 為當(dāng)前類的父類名。 框架將消息和它們的處理函數(shù)連接起來就是消息映射。 ? 命令消息:在響應(yīng)用戶接口操作時(shí),將產(chǎn)生 WM_COMMAND 命令消息。 消息主要有以下 3 類。Windows 應(yīng)用程序是消息驅(qū)動(dòng)的,應(yīng)用程序不能直接得到用戶所做 的操作,如鼠標(biāo)按鍵、鍵盤輸入和窗口移動(dòng)等。運(yùn)用 Visual C++的資源編輯器( Resource Editor)能直觀地設(shè)計(jì)程序的用戶界面,而 ClassWizard 能把用戶界面和程序代碼連接起來。 Visual C++包括一套叫做 MFC( Microsoft Foundation Class Library)的 C++類庫(kù),其中定義了進(jìn)行 Win32 編程所需要的各種類。 ? 高性能的搶先式多任務(wù)和多線程管理。由于 Windows 95/98/Me/NT/2020 是 PC 平臺(tái)中應(yīng)用最廣泛的操作系統(tǒng),而 Microsoft力圖用一個(gè)叫做 Win32 的標(biāo)準(zhǔn) 32 位應(yīng)用程序接口作為對(duì)這幾個(gè)操作系統(tǒng)的共同開發(fā)接口,所以經(jīng)常采用 Win32 來代表 Microsoft的 32 位 Windows 操作系統(tǒng),因此 Visual C++主要用于針對(duì) Win32 的應(yīng)用程序開發(fā)。 MFC 框架的核心是文檔 /視圖結(jié)構(gòu)( DocumentView Architecture),這是一個(gè)很好用、但又往往較難以入門的功能。 ? Visual C++工具降低了編碼的復(fù)雜性。使用 MFC 類庫(kù)構(gòu)建應(yīng)用程序具有以下優(yōu)點(diǎn): ? MFC 庫(kù)是 C++的 Microsoft Windows API。類庫(kù)是 可在應(yīng)用程序中使用的有關(guān) C++類的集合。然而,使用 Visual C++,開發(fā)人員必須真正地閱讀和編寫 C++代碼。 Microsoft Visual C++及編程模式簡(jiǎn)介 1. Visual C++可視化編程 Visual C++的資源編輯器能以所見即所得( What you see is what you get)的形式直接編輯程序的用戶界面,為所有資源分配 ID 標(biāo)識(shí)號(hào)。 Java 完全取消了指針,C極 大地限制了指針的使用,這都限制了程序員施展技巧。但是,無效內(nèi)存的收集和釋放只能周期性地進(jìn)行,難以達(dá)到有效地使用內(nèi)存。故從運(yùn)行效率的角度看,采用 C++進(jìn)行圖像編程比較合適。采用 C++來進(jìn)行圖像編程的主要原因是,與 Java 和 C等現(xiàn)代編程語(yǔ)言相比, C++在程序運(yùn)行的效率、內(nèi)存使用的可控性和編程的靈活性上具有優(yōu)勢(shì)。 本設(shè)計(jì)所討論和處理的圖像均為位圖圖像。位圖圖像(也稱之為光柵圖像)可由圖像模型 I(r, c)來表示,其中包含像素?cái)?shù)據(jù)以及某些文件格式存儲(chǔ)的相應(yīng)的亮度值。 在計(jì)算機(jī)圖形學(xué)中,圖像數(shù)據(jù)的類型被分為兩個(gè)主要種類:矢量和位圖。許多其他圖像類型可以通過圖像轉(zhuǎn)換軟件很容易地轉(zhuǎn)換成這些文件格式,如本設(shè)計(jì)最終開發(fā)出的軟件就可以將圖像在 BMP、 PCX、 TGA、GIF 及 JPEG 之間互相轉(zhuǎn)換。因此,掌握不同格式圖像的編碼解碼、讀寫、顯示等方法是必不可少的。而數(shù)字圖像處理不 僅能完成線性運(yùn)算,而且能實(shí)現(xiàn)非線性處理,即凡是可以用數(shù)學(xué)公式或邏輯關(guān)系來表達(dá)的一切運(yùn)算均可用數(shù)字圖像處理實(shí)現(xiàn)。這些來自不同信息源的圖像只要被變換為數(shù)字編碼形式后,均是用二維數(shù)組表示的灰度圖像(彩色圖像也是由灰度圖像組合成的,例如 RGB 圖像由紅、綠、藍(lán)三個(gè)灰度圖像組合而成),因而均可用計(jì)算機(jī)來處理。換言之,從原理上講不論圖像的精度有多高,處理總是能實(shí)現(xiàn)的,只要在處理時(shí)改變程序中的數(shù)組參數(shù)就可以了。只要圖像在數(shù)字化時(shí)準(zhǔn)確地表現(xiàn)了原稿,則數(shù)字圖像處理過程始終能保持圖像的再現(xiàn)。所有這一切都是圖像的“數(shù)字表達(dá)”這一不可抗拒的發(fā)展趨勢(shì)的組成部分。隨著價(jià)格低廉的高性能計(jì)算機(jī)和諸如數(shù)碼相機(jī)及掃描儀這樣的圖像采集設(shè)備的出現(xiàn),我們已經(jīng)看到圖像處理技 術(shù)在向公眾領(lǐng)域轉(zhuǎn)移。它也是圖像處理領(lǐng)域的一次偉大勝利。隨著 20世紀(jì) 60 年代后期衛(wèi)星圖像的出現(xiàn),更多基于計(jì)算機(jī)的工作便開展起來。當(dāng)時(shí),處理操作是通過光學(xué)方法來完成的,判讀工作則是由專門精于此道并能確定炸彈襲擊結(jié)果的人員來做。這幅圖像在星 際探險(xiǎn)圖像中是一個(gè)里程碑,人們第一次在宇宙中看到了正在爆發(fā)的火山。 正如計(jì)算機(jī)圖形學(xué)一樣,直到近幾年,圖像處理仍然局限在一些實(shí)驗(yàn)室里使用,只有這些地方才能提供昂貴的圖像處理計(jì)算機(jī)來滿足處理大量高分辨率圖像的需要??梢曤娫捠钱?dāng)今結(jié)合計(jì)算機(jī)圖像和傳統(tǒng)圖像處理的技術(shù),以期產(chǎn)生很高壓縮比的交叉領(lǐng)域之一。 1. 再現(xiàn)性好 數(shù)字圖像處理與模擬圖像處理的根本不同在于,它不會(huì)因圖像的存儲(chǔ)、傳輸或復(fù)制等一系列變換操作而導(dǎo)致圖像質(zhì)量的退化。對(duì)計(jì)算機(jī)而言,不論數(shù)組大小,也不論每個(gè)像素的位數(shù)多少,其處理程序幾乎是一樣的。從圖像反映的客觀實(shí)體尺度看,可以小到電子顯微鏡圖像,大到航空照片、遙感圖像甚 至天文望遠(yuǎn)鏡圖像。由于圖像的光學(xué)處理從原理上講只能進(jìn)行線性運(yùn)算,這極大地限制了光學(xué)圖像處理能實(shí)現(xiàn)的目標(biāo)。而這些步驟中,數(shù)據(jù)的存儲(chǔ)、表示又占有相當(dāng)重要的地位,可以說,這是圖像處理中最基本的技術(shù)。但是,已經(jīng)有一些標(biāo)準(zhǔn)的文件格式被開發(fā)出來??梢哉J(rèn)為計(jì)算機(jī)圖形學(xué)是計(jì)算機(jī)圖像技術(shù)的一部分,圖形設(shè)計(jì)師所使用的許多工具也正在被計(jì)算機(jī)圖像專業(yè)人士所采用。當(dāng)圖像被渲染之后,它可以被認(rèn)為是位圖格式,其中每一個(gè)像素都具有與之相關(guān)的特定值。此外,對(duì)于某些復(fù)雜的文件格式,文件頭還必須包含有關(guān)所使用的壓縮類型的信息,以及創(chuàng)建圖像所需要的其他必要的參數(shù)。而本軟件采用Microsoft Visual C++ 作為開發(fā)工具,并使用 MFC Application Framework 作為本軟件的基本架構(gòu)。而 Java 被編譯成字節(jié)碼, C被編譯成中間語(yǔ)言,都是不能在處理器上執(zhí)行的,必須經(jīng)過 Java 虛擬機(jī)或 .NET 通用語(yǔ)言運(yùn)行時(shí)的 JIT 編譯之后才能執(zhí)行,因此效率較低。 Java和 C引進(jìn)了垃圾收集機(jī)制,將開發(fā)人員從內(nèi)存管理的繁雜任務(wù)中解放出來,不再需要直接控制內(nèi)存的分配和釋放。 C++中大量使用指針,使得編程的靈活性很高,這雖然增加了程序出錯(cuò)的可能性,但是便于程序員施展編程技巧來提高程序的效率。鑒于以上原因,本設(shè)計(jì)使用 Microsoft Visual C++ 作為軟件的開發(fā)平臺(tái)。 但產(chǎn)品名“ Visual C++”也容易誤導(dǎo)人,讓人認(rèn)為自己使用的是一個(gè)與 Microsoft Visual Basic 類似的完全可視化的系統(tǒng)。 C++流行的一個(gè)原因是它可以用類庫(kù)擴(kuò)充。自從MFC 庫(kù)發(fā)布以來, MFC 已經(jīng)成為主要的 Windows 類庫(kù)。 MFC 封裝了 Win32 SDK 中的幾乎所有函數(shù),能實(shí)現(xiàn) Win32 系統(tǒng)的任何功能。除封裝了大部分的 Win32 SDK 函數(shù)外, MFC 還提供了應(yīng)用程序本身的數(shù)據(jù)和操作及 ActiveX、 OLE、 Inter、 WinSock、 DAO( Data Access Objects)、 ODBC( Open DataBase Connectivity)等操作類。 3. Win32編程 編寫 Visual C++程序?qū)嶋H上就是一個(gè)構(gòu)造類和把類實(shí)例化的過程。 ? 能在 Windows 95/98/Me 和 Window
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1