導航:首頁 > 文件處理 > bmprle壓縮

bmprle壓縮

發布時間:2022-08-10 15:50:29

① 如何將BMP格式的圖片轉化成GRF點陣圖文件

BAT DOS下的批處理文件。Autoexec.bat為自動批處理文件,它是特殊的批處理文件。

EXE可執行的程序文件,與COM內部結構不相同,最突出是長度沒有限制。

COM可執行的二進制代碼系統程序文件,特點非常短小精焊,長度有限制。

ASM匯編程序文件為二進制代碼文件,可以打個比方,它就像BASIC中的.BAS程序文件一樣,為不可執行文件。

ASC代碼文件。

BAK備份文件

LIB程序庫文件

CHK檢查磁碟命令CHKDSK發現的目錄或文件分配表中的錯誤,校正系統後的文件。

TMP臨時文件

SYS系統配置文件,最典型的如config.sys,一般可以用EDIT進行編輯。

OBJ目標文件,源程序編譯輸出的目標代碼。

OLD備份文件,一般是一些程序對系統配置修改後將原文件復制一份存儲為該文件格式。

INI配置文件,不要以為這個文件只有Windows程序需要,DOS下程序也有不少需要它,如3DS與AutoCAD。

INF安裝配置文件,這在WIN95下使用較多。

HLP HELP幫助文件,這個文件一定要重視,因為它是你每使用一個新軟體的最好的說明書,幾乎99%的軟體都有這個文件,另外,DOS下的一些幫助放在README以後,幫助便沒有了,如UCDOS中的REAME.EXE;有單獨DOS的命令,若不知道怎麼使用,可以試試以下的命令格式:「DIR?或DIR/?」。

DDI早期映象文件,由DiskDUP IMGDRIVE IMG.EXE展開

IMG這個文件要注意,有時它是一個圖象文件,但更多的時候,它是映象文件,在早期光碟上,此文件使用最多,能常用HD-COPY IMG UNIMG都軟體進行解壓(註:IMG這個軟體為什麼一閃就沒了呢,這個軟體需要熱鍵激活,按下Ctrl+Alt+S+D+X),如果要安裝的軟體壓縮文件由和幾個IMG分開壓縮,那最好用UNIMG將它們全部解壓縮,然後安裝,它安裝時提示你「請插入X序列盤」。

ARJ ARJ(ARJ這個以前風眯一時的壓縮軟體誰人不曉)軟體壓縮的文件,它的壓縮比較高,使用也特方便順手,只需要「ARJ a -r -v……」

RAR這也是一個壓縮文件,傳說比ARJ壓縮比更高,筆者沒有親手做試驗,故不敢下空此結論。

ZIP當前最流行的壓縮文件,誰不知道ZIP呀,WINZIP,再也不是DOS下的那個UNZIG或PKZIP了,兼容,向下兼容,從游戲到軟體,差不多都是它壓縮的了。

IMD UCDOS中輸法的編碼字典文件。

PDV UCDOS中的自由表格UCTAB生成的表格文件,它生成的文件可以被WPS調用,也挺方便的。

BAS BASIC中的源程序文件,BASIC可為初學者最為熟悉的編輯語言,它的優點筆者就不在累贅了,注意QBASIC與QUICK BASIC和GW BASIC是有區別。

C C語言中的源程序文件,它不但造就了我們常常為之日夜奮戰的精彩電腦游戲,還創造出UNIX操作系統,有口皆碑的好編程軟體。

MAK C語言中的工程文件。

COB COBOL語言源程序文件。

PAS PASCAL語言源程序文件。

FOR FORTRAN語言源程序文件。

FOX FOXBASE偽編譯程序文件,比PRG短小運行速度快。

PRG FOXBASE過程程序文件。

DBF XBASE資料庫文件。

IDX FOXBASE中的索引文件。

LBL FOXBASE中的標簽文件。

FRM FOXBASE中的報表格式文件。

MEM FOXBASE中的內存變數文件。

FMT FOXBASE中的屏幕格式文件。

DBT FOXBASE中的資料庫文件的輔助文件。

DBC為FOXPRO中的資料庫名。

PJX Visual FoxPro下的項目文件與輔助文件PJT結合成項目管理管理文件。

RTF Rich的文本文件格式。

TXT純文本文件格式,可以利用TYPE以及EDIT或者記事本等任何字處理程序打開,對它顯示編輯。

WPS文檔文件,是由著名國產軟(WPS)(WORD PROCESSING SYSTEM)生成。由於WPS歷經滄桑,經歷了WPS1.0 2.2WPS30F WPSNT以及現在的WPS98眾多版本,但是沒有像WORD一樣提供轉換程序,一般高版本的WPS可以讀出低版本的文件,對於低版本能不能讀出高版本的文件,筆者沒有一一做出試驗,故不敢輕易下結論,只試驗過UCDOS下的WPS讀不出由WPSNT編輯的文件;另外對於WPS97的文件,你根本就不要用DOS版本去讀,百分之百讀出來,其實相互轉換也不大困難,只要你在存檔時選擇以TXT純文本格式存檔也就不存在什麼版本高低了。(WPS97中不要放圖片)

%A%%B% WPS中的臨時文件,注意清除OVL覆蓋文件,如WPS.VOL1。

DOC文檔文件,是由軟體霸主Micrsoft Word生成,也有一部分是由WORD PERFECT生成,此文件也是版本眾多有Wihdows下面的WORD5.0 6.0生成,還有WIN95下WORD7.0 WORD97,它們相互兼容性比較好,高版本可以輕松讀取低版本文件,而且高版本也可以以低版本的格式進行存儲,有人說WINDOWS中的書寫器也能讀出DOC,但筆者試驗,讀取WORD7.0以上的DOC都是一些亂碼,而且格式里也註明只能讀出DOS版的DOC。

PCS為POWERPOINT中的圖象文件,為矢量圖形文件。

XLS電子表格EXCEL的格式文件。

FNT為Bezier(貝氏)類型字體的文件。

TTF True Type字體文件,是一種輪廓字模,是由Apple和Microsoft合作開發的。Windows3.1下直接支持True Type字模。

FOT是True Type字體文件的資源文件,正因為FOT文件中含有指向TTF的指針。所以我們的字體文件(TTF)才可以放在任何目錄下面,而不必提心系統找不到。

PFB Adobe TYPE1字體Post Script字模文件,必須使用Adobe Type Manager管理安裝使用,它的最大優點是放大時比TTF字幕可靠得多。

PS1為WPS下擴展字型檔文件,PS2一般為繁體。

REC Windows中記錄器中的宏命令文件。

CRD Windows中的卡版盒文件。

PIF Windows中的運行非WINDOWS應用程序建立的一個文件。

WRI文檔文件,是由WINDOWS中書寫器生成的。

DRV驅動程序文件。

VXD虛擬設備文件

GRP Windows程序組文件。

ANI WIN95中動畫滑鼠指針文件。

DLL Windows下應用程序中的動態連結庫文件。

SCR WINDOWS屏幕保護程序文件

MP2 MP3當前最流行的音樂文件,音質可於CD音質媲美,採集率達44.1KHZ,由於它文件格式又非常小,需要一個叫WINAMP的軟體和一個叫抓音軌的軟體,如果通過音效卡直接就能將錄音帶上的歌曲錄製成WAV文件,再轉化為MP3,播放時需要硬體配置不是太高。

SND在WIN95下同WAV文件圖標大同小異,小喇叭的顏色是綠色,是聲音文件的剪輯文件。

VOC VOC文件是隨音效卡一起誕生的一種常見數字聲音文件,主要用於DOS程序(特別游戲),VOC與波形文件可方便轉換。

WAV Windows所使用的標准數字音頻文件,也稱波形文件,它能夠重現各種單聲道或立體聲的聲音,是最常用的聲音文件。

MID這個是音樂發燒友最熟悉不過的文件格式,是「樂器數字介面」(Musical lnstrument Digital interface)讀作middy「迷笛」。mid文件最受人於睞的是占的空間小,與wav相比不是音樂采樣,而是將每個音符記錄為一個數字,mid標准規定了各種音調的混合及發音,通過輸出裝置可以將這些數字重新合成為音樂。它的缺點是有點太電子琴味。

RMI CMI CMF(Creative Music File)是mid幾個變通格式,它們都同音效卡一起誕生,現在一般很少,它們有些可以同mid相互轉換,用CMF2MID小軟體。

PCX是微機上使用最廣泛的圖像格式之一,能表現真彩圖像。

BMP是Windows所使用的基本點陣圖格式,是小畫筆就能輕松創建的文件,另外提醒你BMP有壓縮(RLE方法)和非壓縮,我們常用是非壓縮,bmp還有一個OS/2的版本,與Windows有區別。

GIF GIF在網頁中佔有獨一無二的地位,美中不足是顏色最多為(256色)8位,與其它圖象文件相比,GIF高人一招,它是唯一可以存儲動畫的圖像格式。

PSD PDD點陣圖文件,均為大名鼎鼎的圖象大師Adobe Photoshop直接生成的圖象文件。

CGM(Computer Graphics Metafile)是壓縮的矢量圖形文件,WINWORD可以打開。

HGL(HP Graphic Language)是HP公司創建的一種矢量圖形語言。

WPG(DrawPerfect)矢量文件。

TIF最初用於掃描儀和桌面出版業,TIF程式圖像可以是RGB真彩色的。

TGA點陣圖文件,為Targa公司開發的支持8位到32位顏色深度圖像文件,結構簡單,少有變化,易轉換。

VDA ICB VST與TGA相似,均為Targa公司開發的點陣圖文件。

JPG JPE原是Apple Mac機器上使用的一種圖像格式,現在意在PC機上大行其道,由於其壓縮比可以調節,而且失真又很小,所以無論是網路上還是圖像處理上都是使用很廣泛的。

PIC同上,Lotus 1-2-3的圖表文件也叫PIC文件,使用時請注意。

PCD是PhotoCD專用存儲格式,由於其文件特別大,不得不存在CD-ROM上,但應用特別廣。

EPS(Encapsulared postScrip)是Adobe System公司的PostScrip頁面描述語言的產物,是矢量圖形文件。

WMF (Windows MetaFile)是特殊文件,是點陣圖和矢量圖混血兒,桌面格式,可以在Windord與Offices組件中ClipArts最常用的格式可以在WinWord的DRAW中隨意拆開編輯。

AI 矢量格式,是久負盛名的繪圖軟體Adobe lllustrator文件格式。

CDR矢量格式,是Corel Draw!標准文件格式。

CPT點陣圖和矢量圖都有,是Corel PHOTO-PAINT的文件格式。

CDT Corel Draw中的模板文件。

CMX Corel Draw展示交換文件。

CMV是Corel MOVE平面動畫軟體中的動畫演示文件。

DXF矢量格式,CAD與3ds玩家可能都知道,是AutoCAD的繪圖交換文件。

3DS矢量格式,為3D Studio的動畫原始圖形文件,含有紋理和光照信息。

SHP矢量格式3DS中的造型文件。

CEL 3DS中的貼圖文件。

MLI 3DS中的材質庫。

DRW矢量格式Micrografx Designer使用的繪圖文件格式。

WPG矢量/格式,是Word Perfect使用的文件格式。

FLI動畫文件,是由AutoDesk公司開發的,只支持320×200×256色模式,它是FLC的老祖宗。

FIC動畫文件,是AutoDesk公司開發的,與FLI相比是青出於藍勝於藍的產物:文件的解析度和顏色數都有所提高,它與FLI在Windows中播放需要專用MCI驅動和相應的播放程序APPlay。

MMM動畫文件,是MacroMind公司著名多媒體寫作軟體Director生成的,一般集成在完整的應用程序中,單獨出現的文件很少。

AVI視頻與音頻交錯文件(Audio-Video lnter leaved音頻-視頻交錯)它將視頻音頻交錯混合在一起,AVI文件使用的壓縮方法好幾種,主要使用有損方法,壓縮比較高,與FLC和MOV相比,畫面質量不太好,在Windows下播放需要安裝VIDEO For Windows驅動程序,AVI在多媒體中應用較多廣,一般視頻採集直接採集的素材便為AVI格式,編輯的它的軟體也不少,如Video Pack Adobe Premiere,

MPG視頻文件,PC機上的全屏幕活動視頻的標准文件,採用MPEG方法進行壓縮的全運動視頻圖像,可於1024×768的解析度下每秒30幀速率播放128000種顏色和同步CD音質的伴音,是極為理想的視頻影像文件

DAT視頻影像文件,是Video CD(VCD)或Karaoke CD(卡拉OK CD)基於MPEG壓縮方法的一種,注意它同數據文件同名

MOV視頻影像,同樣採用有損壓縮方法,在Windows下必須安裝QuickTime程序才能播放,它是從蘋果機移植到PC上的,比AVI畫面質量要好一些,其實你拿一個AVI文件做一下比較也就不難看出了。

HTM超文本文件,INTERNET網上訪問WWW,是在HTM文件的的海洋里沖浪,對於超文本文件,說它是編程,可它也不像編程,現在要建立它,一點也不困難,有關的介紹滿天飛,什麼HOME PAGE,在WIN98中,OFFICES97都可以方便的創建生成。它還有一些名字叫主頁、網,而且還與JAVA關系特密切。Microsoft IE導航者中與NETCAPE航海家都能游覽它。

NO這個文件最重,要如SERIAL.NO,記事本、書寫器、EDIT都可以打開,當你安裝軟體時,你可要一定先看看有這個文件沒有,通常還有一種格式為(SN.TXT),它就是你安裝軟體是,你千找萬尋的CD—KEY、產品序系號、注冊登記號,有的軟體更為陰險,安裝時不要序列號,確在運行時向你發難了,不過現在不用怕了,這個文件一般放在安裝程序第一個子目錄中或光碟的根目錄下,要是嫌其它文件魚目混珠的話,用資源管理器搜索好了。

② 什麼是BMP圖片

BMP是一種與硬體設備無關的圖像文件格式,使用非常廣。它採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮,因此,BMP文件所佔用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。
由於BMP文件格式是Windows環境中交換與圖有關的數據的一種標准,因此在Windows環境中運行的圖形圖像軟體都支持BMP圖像格式。 [編輯本段]文件結構:典型的BMP圖像文件由四部分組成:
1:點陣圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;
2:點陣圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息;
3:調色板,這個部分是可選的,有些點陣圖需要調色板,有些點陣圖,比如真彩色圖(24位的BMP)就不需要調色板;
4:點陣圖數據,這部分的內容根據BMP點陣圖使用的位數不同而不同,在24點陣圖中直接使用RGB,而其他的小於24位的使用調色板中顏色索引值。
點陣圖的類型:
點陣圖一共有兩種類型,即:設備相關點陣圖(DDB)和設備無關點陣圖(DIB)。DDB點陣圖在早期的Windows系統(Windows 3.0以前)中是很普遍的,事實上它也是唯一的。然而,隨著顯示器製造技術的進步,以及顯示設備的多樣化,DDB點陣圖的一些固有的問題開始浮現出來了。比如,它不能夠存儲(或者說獲取)創建這張圖片的原始設備的解析度,這樣,應用程序就不能快速的判斷客戶機的顯示設備是否適合顯示這張圖片。為了解決這一難題,微軟創建了DIB點陣圖格式。
設備無關點陣圖 (Device-Independent Bitmap)
DIB點陣圖包含下列的顏色和尺寸信息:
* 原始設備(即創建圖片的設備)的顏色格式。
* 原始設備的解析度。
* 原始設備的調色板
* 一個位數組,由紅、綠、藍(RGB)三個值代表一個像素。
* 一個數組壓縮標志,用於表明數據的壓縮方案(如果需要的話)。
以上這些信息保存在BITMAPINFO結構中,該結構由BITMAPINFOHEADER結構和兩個或更多個RGBQUAD結構所組成。BITMAPINFOHEADER結構所包含的成員表明了圖像的尺寸、原始設備的顏色格式、以及數據壓縮方案等信息。RGBQUAD結構標識了像素所用到的顏色數據。
DIB點陣圖也有兩種形式,即:底到上型DIB(bottom-up),和頂到下型DIB(top-down)。底到上型DIB的原點(origin)在圖像的左下角,而頂到下型DIB的原點在圖像的左上角。如果DIB的高度值(由BITMAPINFOHEADER結構中的biHeight成員標識)是一個正值,那麼就表明這個DIB是一個底到上型DIB,如果高度值是一個負值,那麼它就是一個頂到下型DIB。注意:頂到下型的DIB點陣圖是不能被壓縮的。
點陣圖的顏色格式是通過顏色面板值(planes)和顏色位值(bitcount)計算得來的,顏色面板值永遠是1,而顏色位值則可以是1、4、8、16、24、32其中的一個。如果它是1,則表示點陣圖是一張單色點陣圖(譯者註:通常是黑白點陣圖,只有黑和白兩種顏色,當然它也可以是任意兩種指定的顏色),如果它是4,則表示這是一張VGA點陣圖,如果它是8、16、24、或是32,則表示該點陣圖是其他設備所產生的點陣圖。如果應用程序想獲取當前顯示設備(或列印機)的顏色位值(或稱位深度),可調用API函數GetDeviceCaps(),並將第二個參數設為BITSPIXEL即可。
顯示設備的解析度是以每米多少個像素來表明的,應用程序可以通過以下三個步驟來獲取顯示設備或列印機的水平解析度:
1. 調用GetDeviceCaps()函數,指定第二個參數為HORZRES。
2. 再次調用GetDeviceCaps()函數,指定第二個參數為HORZSIZE。
3. 用第一個返回值除以第二個返回值。即:DetDeviceCaps(hDC,HORZRES)/GetDeviceCaps(hDC,HORZSIZE);
應用程序也可以使用相同的三個步驟來獲取設備的垂直解析度,不同之處只是要將HORZRES替換為VERTRES,把HORZSIZE替換為VERTSIZE,即可。
調色板是被保存在一個RGBQUAD結構的數組中,該結構指出了每一種顏色的紅、綠、藍的分量值。位數組中的每一個索引都對應於一個調色板項(即一個RGBQUAD結構),應用程序將根據這種對應關系,將像素索引值轉換為像素RGB值(真實的像素顏色)。應用程序也可以通過調用GetDeviceCaps()函數來獲取當前顯示設備的調色板尺寸(將該函數的第二個參數設為NUMCOLORS即可)。
Win32 API支持位數據的壓縮(只對8位和4位的底到上型DIB點陣圖)。壓縮方法是採用運行長度編碼方案(RLE),RLE使用兩個位元組來描述一個句法,第一個位元組表示重復像素的個數,第二個位元組表示重復像素的索引值。有關壓縮點陣圖的詳細信息請參見對BITMAPINFOHEADER結構的解釋。
應用程序可以從一個DDB點陣圖創建出一個DIB點陣圖,步驟是,先初始化一些必要的結構,然後再調用GetDIBits()函數。不過,有些顯示設備有可能不支持這個函數,你可以通過調用GetDeviceCaps()函數來確定一下(GetDeviceCaps()函數在調用時指定RC_DI_BITMAP作為RASTERCAPS的標志)。
應用程序可以用DIB去設置顯示設備上的像素(譯者註:也就是顯示DIB),方法是調用SetDIBitsToDevice()函數或調用StretchDIBits()函數。同樣,有些顯示設備也有可能不支持以上這兩個函數,這時你可以指定RC_DIBTODEV作為RASTERCAPS標志,然後調用GetDeviceCaps()函數來判斷該設備是否支持SetDIBitsToDevice()函數。也可以指定RC_STRETCHDIB作為RASTERCAPS標志來調用GetDeviceCaps()函數,來判斷該設備是否支持StretchDIBits()函數。
如果應用程序只是要簡單的顯示一個已經存在的DIB點陣圖,那麼它只要調用SetDIBitsToDevice()函數就可以。比如一個電子表格軟體,它可以打開一個圖表文件,在窗口中簡單的調用SetDIBitsToDevice()函數,將圖形顯示在窗口中。但如果應用程序要重復的繪制點陣圖的話,則應該使用BitBlt()函數,因為BitBlt()函數的執行速度要比SetDIBitsToDevice()函數快很多。
設備相關點陣圖 (Device-Dependent Bitmaps)
設備相關點陣圖(DDB)之所以現在還被系統支持,只是為了兼容舊的Windows 3.0軟體,如果程序員現在要開發一個與點陣圖有關的程序,則應該盡量使用或生成DIB格式的點陣圖。
DDB點陣圖是被一個單個結構BITMAP所描述,這個結構的成員標明了該點陣圖的寬度、高度、設備的顏色格式等信息。
DDB點陣圖也有兩種類型,即:可廢棄的(discardable)DDB和不可廢棄的(nondiscardable)DDB。可廢棄的DDB點陣圖就是一種當系統內存缺乏,並且該點陣圖也沒有被選入設備描述表(DC)的時候,系統就會把該DDB點陣圖從內存中清除(即廢棄)。不可廢棄的DDB則是無論系統內存多少都不會被系統清除的DDB。API函數CreateDiscardableBitmap()函數可用於創建可廢棄點陣圖。而函數CreateBitmap()、CreateCompatibleBitmap()、和CreateBitmapIndirect()可用於創建不可廢棄的點陣圖。
應用程序可以通過一個DIB點陣圖而創建一個DDB點陣圖,只要先初始化一些必要的結構,然後再調用CreateDIBitmap()函數就可以。如果在調用該函數時指定了CBM_INIT標志,那麼這一次調用就等價於先調用CreateCompatibleBitmap()創建當前設備格式的DDB點陣圖,然後又調用SetDIBits()函數轉換DIB格式到DDB格式。(可能有些設備並不支持SetDIBits()函數,你可以指定RC_DI_BITMAP作為RASTERCAPS的標志,然後調用GetDeviceCaps()函數來判斷一下)。
對應的數據結構:
1:BMP文件組成
BMP文件由文件頭、點陣圖信息頭、顏色信息和圖形數據四部分組成。
2:BMP文件頭(14位元組)
BMP文件頭數據結構含有BMP文件的類型、文件大小和點陣圖起始位置等信息。
其結構定義如下:
typedef struct tagBITMAPFILEHEADER
{
WORD bfType; // 點陣圖文件的類型,必須為BM(0-1位元組)
DWORD bfSize; // 點陣圖文件的大小,以位元組為單位(2-5位元組)
WORD bfReserved1; // 點陣圖文件保留字,必須為0(6-7位元組)
WORD bfReserved2; // 點陣圖文件保留字,必須為0(8-9位元組)
DWORD bfOffBits; // 點陣圖數據的起始位置,以相對於點陣圖(10-13位元組)
// 文件頭的偏移量表示,以位元組為單位
} BITMAPFILEHEADER;
3:點陣圖信息頭(40位元組)
BMP點陣圖信息頭數據用於說明點陣圖的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本結構所佔用位元組數(14-17位元組)
LONG biWidth; // 點陣圖的寬度,以像素為單位(18-21位元組)
LONG biHeight; // 點陣圖的高度,以像素為單位(22-25位元組)
WORD biPlanes; // 目標設備的級別,必須為1(26-27位元組)
WORD biBitCount;// 每個像素所需的位數,必須是1(雙色),(28-29位元組)
// 4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 點陣圖壓縮類型,必須是 0(不壓縮),(30-33位元組)
// 1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一
DWORD biSizeImage; // 點陣圖的大小,以位元組為單位(34-37位元組)
LONG biXPelsPerMeter; // 點陣圖水平解析度,每米像素數(38-41位元組)
LONG biYPelsPerMeter; // 點陣圖垂直解析度,每米像素數(42-45位元組)
DWORD biClrUsed;// 點陣圖實際使用的顏色表中的顏色數(46-49位元組)
DWORD biClrImportant;// 點陣圖顯示過程中重要的顏色數(50-53位元組)
} BITMAPINFOHEADER;
4:顏色表
顏色表用於說明點陣圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結構,定義一種顏色。RGBQUAD結構的定義如下:
typedef struct tagRGBQUAD {
BYTE rgbBlue;// 藍色的亮度(值范圍為0-255)
BYTE rgbGreen; // 綠色的亮度(值范圍為0-255)
BYTE rgbRed; // 紅色的亮度(值范圍為0-255)
BYTE rgbReserved;// 保留,必須為0
} RGBQUAD;
顏色表中RGBQUAD結構數據的個數有biBitCount來確定:
當biBitCount=1,4,8時,分別有2,16,256個表項;
當biBitCount=24時,沒有顏色表項。
點陣圖信息頭和顏色表組成點陣圖信息,BITMAPINFO結構定義如下:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 點陣圖信息頭
RGBQUAD bmiColors[1]; // 顏色表
} BITMAPINFO;
5:點陣圖數據
點陣圖數據記錄了點陣圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上。點陣圖的一個像素值所佔的位元組數:
當biBitCount=1時,8個像素佔1個位元組;
當biBitCount=4時,2個像素佔1個位元組;
當biBitCount=8時,1個像素佔1個位元組;
當biBitCount=24時,1個像素佔3個位元組;
Windows規定一個掃描行所佔的位元組數必須是
4的倍數(即以long為單位),不足的以0填充,
biSizeImage = ((((bi.biWidth * bi.biBitCount) + 31) & ~31) / 8) * bi.biHeight;
具體數據舉例:
如某BMP文件開頭:
4D42 4690 0000 0000 0000 4600 0000 2800 0000 8000 0000 9000 0000 0100*1000 0300 0000 0090 0000 A00F 0000 A00F 0000 0000 0000 0000 0000*00F8 0000 E007 0000 1F00 0000 0000 0000*02F1 84F1 04F1 84F1 84F1 06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2 .... ....
BMP文件可分為四個部分:點陣圖文件頭、點陣圖信息頭、彩色板、圖像數據陣列,在上圖中已用*分隔。
一、圖像文件頭
1)1:(這里的數字代表的是"字",即兩個位元組,下同)圖像文件頭。0x4D42=』BM』,表示是Windows支持的BMP格式。
2)2-3:整個文件大小。4690 0000,為00009046h=36934。
3)4-5:保留,必須設置為0。
4)6-7:從文件開始到點陣圖數據之間的偏移量。4600 0000,為00000046h=70,上面的文件頭就是35字=70位元組。
二、點陣圖信息頭
5)8-9:點陣圖圖信息頭長度。
6)10-11:點陣圖寬度,以像素為單位。8000 0000,為00000080h=128。
7)12-13:點陣圖高度,以像素為單位。9000 0000,為00000090h=144。
8)14:點陣圖的位面數,該值總是1。0100,為0001h=1。
9)15:每個像素的位數。有1(單色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增強型真彩色)。1000為0010h=16。
10)16-17:壓縮說明:有0(不壓縮),1(RLE 8,8位RLE壓縮),2(RLE 4,4位RLE壓縮,3(Bitfields,位域存放)。RLE簡單地說是採用像素數+像素值的方式進行壓縮。T408採用的是位域存放方式,用兩個位元組表示一個像素,位域分配為r5b6g5。圖中0300 0000為00000003h=3。
11)18-19:用位元組數表示的點陣圖數據的大小,該數必須是4的倍數,數值上等於(≥點陣圖寬度的最小的4的倍數)×點陣圖高度×每個像素位數。0090 0000為00009000h=80×90×2h=36864。
12)20-21:用象素/米表示的水平解析度。A00F 0000為0000 0FA0h=4000。
13)22-23:用象素/米表示的垂直解析度。A00F 0000為0000 0FA0h=4000。
14)24-25:點陣圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。
15)26-27:對圖象顯示有重要影響的顏色索引的數目。如果是0,表示都重要。
三、彩色板
16)28-....(不確定):彩色板規范。對於調色板中的每個表項,用下述方法來描述RGB的值:
1位元組用於藍色分量
1位元組用於綠色分量
1位元組用於紅色分量
1位元組用於填充符(設置為0)
對於24-位真彩色圖像就不使用彩色板,因為點陣圖中的RGB值就代表了每個象素的顏色。
如,彩色板為00F8 0000 E007 0000 1F00 0000 0000 0000,其中:
00FB 0000為FB00h=1111100000000000(二進制),是藍色分量的掩碼。
E007 0000為 07E0h=0000011111100000(二進制),是綠色分量的掩碼。
1F00 0000為001Fh=0000000000011111(二進制),是紅色分量的掩碼。
0000 0000總設置為0。
將掩碼跟像素值進行「與」運算再進行移位操作就可以得到各色分量值。看看掩碼,就可以明白事實上在每個像素值的兩個位元組16位中,按從高到低取5、6、5位分別就是r、g、b分量值。取出分量值後把r、g、b值分別乘以8、4、8就可以補齊第個分量為一個位元組,再把這三個位元組按rgb組合,放入存儲器(同樣要反序),就可以轉換為24位標准BMP格式了。
四、圖像數據陣列
17)27(無調色板)-...:每兩個位元組表示一個像素。陣列中的第一個位元組表示點陣圖左下角的象素,而最後一個位元組表示點陣圖右上角的象素。
五、存儲演算法
BMP文件通常是不壓縮的,所以它們通常比同一幅圖像的壓縮圖像文件格式要大很多。例如,一個800×600的24位幾乎占據1.4MB空間。因此它們通常不適合在網際網路或者其它低速或者有容量限制的媒介上進行傳輸。 根據顏色深度的不同,圖像上的一個像素可以用一個或者多個位元組表示,它由n/8所確定(n是位深度,1位元組包含8個數據位)。圖片瀏覽器等基於位元組的ASCII值計算像素的顏色,然後從調色板中讀出相應的值。更為詳細的信息請參閱下面關於點陣圖文件的部分。 n位2n種顏色的點陣圖近似位元組數可以用下面的公式計算: BMP文件大小約等於 54+4*2的n次方+(w*h*n)/8,其中高度和寬度都是像素數。 需要注意的是上面公式中的54是點陣圖文件的文件頭,是彩色調色板的大小。另外需要注意的是這是一個近似值,對於n位的點陣圖圖像來說,盡管可能有最多2n中顏色,一個特定的圖像可能並不會使用這些所有的顏色。由於彩色調色板僅僅定義了圖像所用的顏色,所以實際的彩色調色板將小於。 如果想知道這些值是如何得到的,請參考下面文件格式的部分。 由於存儲演算法本身決定的因素,根據幾個圖像參數的不同計算出的大小與實際的文件大小將會有一些細小的差別。

③ BMP、JPEG、GIF、PNG各用什麼壓縮編碼

Windows 點陣圖文件格式與其他 Microsoft Windows 程序兼容。它不支持文件壓縮,也不適用於 Web 頁。從總體上看,Windows 點陣圖文件格式的缺點超過了它的優點。為了保證照片圖像的質量,請使用 PNG 文件、JPEG 文件或 TIFF 文件。BMP 文件適用於 Windows 中的牆紙。 優點: BMP 支持 1 位到 24 位顏色深度。BMP 格式與現有 Windows 程序(尤其是較舊的程序)廣泛兼容。 缺點: BMP 不支持壓縮,這會造成文件非常大。BMP 文件不受 Web 瀏覽器支持。 PCX:PC 畫筆 「PC 畫筆」圖片(也被稱為 Z-Soft 點陣圖)會以任何顏色深度存儲單個光柵圖像。畫筆圖片更廣泛地用於較早的 Windows 程序和基於 MS-DOS 的程序。畫筆圖片與許多較新的程序兼容。PCX 圖片支持「行程長度編碼」(RLE) 內部壓縮。 優點: PCX 在許多基於 Windows 的程序和基於 MS-DOS 的程序間是標准格式。PCX 支持內部壓縮。 缺點:PCX 不受 Web 瀏覽器支持。 PNG:可移植網路圖形 PNG 圖片以任何顏色深度存儲單個光柵圖像。PNG 是與平台無關的格式。 優點: PNG 支持高級別無損耗壓縮。PNG 支持 alpha 通道透明度。PNG 支持伽瑪校正。 PNG 支持交錯。PNG 受最新的 Web 瀏覽器支持。 缺點: 較舊的瀏覽器和程序可能不支持 PNG 文件。作為 Internet 文件格式,與 JPEG 的有損耗壓縮相比,PNG 提供的壓縮量較少。作為 Internet 文件格式,PNG 對多圖像文件或動畫文件不提供任何支持。GIF 格式支持多圖像文件和動畫文件。 JPEG:聯合攝影專家組 JPEG 圖片以 24 位顏色存儲單個光柵圖像。JPEG 是與平台無關的格式,支持最高級別的壓縮,不過,這種壓縮是有損耗的。漸近式 JPEG 文件支持交錯。可以提高或降低 JPEG 文件壓縮的級別。但是,文件大小是以圖像質量為代價的。壓縮比率可以高達 100:1。(JPEG 格式可在 10:1 到 20:1 的比率下輕松地壓縮文件,而圖片質量不會下降。)JPEG 壓縮可以很好地處理寫實攝影作品。但是,對於顏色較少、對比級別強烈、實心邊框或純色區域大的較簡單的作品,JPEG 壓縮無法提供理想的結果。有時,壓縮比率會低到 5:1,嚴重損失了圖片完整性。這一損失產生的原因是,JPEG 壓縮方案可以很好地壓縮類似的色調,但是 JPEG 壓縮方案不能很好地處理亮度的強烈差異或處理純色區域。 優點: 攝影作品或寫實作品支持高級壓縮。利用可變的壓縮比可以控制文件大小。支持交錯(對於漸近式 JPEG 文件)。JPEG 廣泛支持 Internet 標准。 缺點:有損耗壓縮會使原始圖片數據質量下降。當您編輯和重新保存 JPEG 文件時,JPEG 會混合原始圖片數據的質量下降。這種下降是累積性的。JPEG 不適用於所含顏色很少、具有大塊顏色相近的區域或亮度差異十分明顯的較簡單的圖片。 GIF:圖形交換格式 GIF 圖片以 8 位顏色或 256 色存儲單個光柵圖像數據或多個光柵圖像數據。GIF 圖片支持透明度、壓縮、交錯和多圖像圖片(動畫 GIF)。GIF 透明度不是 alpha 通道透明度,不能支持半透明效果。GIF 壓縮是 LZW 壓縮,壓縮比大概為 3:1。GIF 文件規范的 GIF89a 版本中支持動畫 GIF。 優點: GIF 廣泛支持 Internet 標准。支持無損耗壓縮和透明度。動畫 GIF 很流行,易於使用許多 GIF 動畫程序創建。 缺點:GIF 只支持 256 色調色板,因此,詳細的圖片和寫實攝影圖像會丟失顏色信息,而看起來卻是經過調色的。 ·在大多數情況下,無損耗壓縮效果不如 JPEG 格式或 PNG 格式。�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2�0�2

④ 請教關於BMP點陣圖文件的壓縮演算法,所有的分都給你們了!

由於24位點陣圖中使用三個位元組(RGB)來表示一個像素的顏色,因此,BMP文件這就要求我們必須對該內容進行實時高效地壓縮。以下是使用DEBUG工具獲得的BMP

⑤ PS保存為BMP 8位時,勾選了RLE壓縮,為什麼屬性里變32位的了

在系統設置或者壓縮上設置後就可以 文件不允許大,你可以存為的時候可以改為小文件,這樣會縮小

⑥ BMP文件的編碼方式

BMP是一種與硬體設備無關的圖像文件格式,也是我們最常在PC機上的Windows系統下見到的標准點陣圖格式,使用范圍很廣泛。它採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮,因此,BMP文件所佔用的空間很大。它最大的好處就是能被大多數軟體「接受」,可稱為通用格式。

BMP在過去是比較普及的圖像格式,現在BMP(Window點陣圖)圖像主要被用在PC機運行Window時的牆紙。BMP可以提供無損壓縮,壓縮方式叫RLE(遊程長度編碼的編寫),在創建牆紙圖像文件時是一個極好的選項。Window有時在查找以RLE壓縮文件方式保存的牆紙圖像時也會出現識別錯誤。,因此使用時最好先關閉RLE壓縮功能。
BMP文件由文件頭、點陣圖信息頭、顏色信息和圖形數據四部分組成。
1、 BMP文件頭:BMP文件頭數據結構含有BMP文件的類型、文件大小和點陣圖起始位置等信息。
typedef struct tagBITMAPFILEHEADER{
WORD bfType; // 點陣圖文件的類型,必須為BM
DWORD bfSize; // 點陣圖文件的大小,以位元組為單位
WORD bfReserved1; // 點陣圖文件保留字,必須為0
WORD bfReserved2; // 點陣圖文件保留字,必須為0
DWORD bfOffBits; // 點陣圖數據的起始位置,以相對於點陣圖文件頭的偏移量表示,以位元組為單位
} BITMAPFILEHEADER;
2、 點陣圖信息頭:BMP點陣圖信息頭數據用於說明點陣圖的尺寸等信息。
typedef struct tagBITMAPINFOHEADER{
DWORD biSize; // 本結構所佔用位元組數
LONGbiWidth; // 點陣圖的寬度,以像素為單位
LONGbiHeight; // 點陣圖的高度,以像素為單位
WORD biPlanes; // 目標設備的級別,必須為1
WORD biBitCount// 每個像素所需的位數,必須是1(雙色),4(16色),8(256色)或24(真彩色)之一
DWORD biCompression; // 點陣圖壓縮類型,必須是 0(不壓縮),1(BI_RLE8壓縮類型)或2(BI_RLE4壓縮類型)之一
DWORD biSizeImage; // 點陣圖的大小,以位元組為單位
LONG biXPelsPerMeter; // 點陣圖水平解析度,每米像素數
LONG biYPelsPerMeter; // 點陣圖垂直解析度,每米像素數
DWORD biClrUsed;// 點陣圖實際使用的顏色表中的顏色數
DWORD biClrImportant;// 點陣圖顯示過程中重要的顏色數
} BITMAPINFOHEADER;
3、 顏色表:顏色表用於說明點陣圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結構,定義一種顏色。
typedef struct tagRGBQUAD {
BYTE rgbBlue;// 藍色的亮度(值范圍為0-255)
BYTE rgbGreen; // 綠色的亮度(值范圍為0-255)
BYTE rgbRed; // 紅色的亮度(值范圍為0-255)
BYTE rgbReserved;// 保留,必須為0
} RGBQUAD;
顏色表中RGBQUAD結構數據的個數有biBitCount來確定:
當biBitCount=1,4,8時,分別有2,16,256個表項;
當biBitCount=24時,沒有顏色表項。
點陣圖信息頭和顏色表組成點陣圖信息,BITMAPINFO結構定義如下:
typedef struct tagBITMAPINFO {
BITMAPINFOHEADER bmiHeader; // 點陣圖信息頭
RGBQUAD bmiColors[1]; // 顏色表
} BITMAPINFO;
4、 點陣圖數據:點陣圖數據記錄了點陣圖的每一個像素值,記錄順序是在掃描行內是從左到右,掃描行之間是從下到上。點陣圖的一個像素值所佔的位元組數:
當biBitCount=1時,8個像素佔1個位元組;
當biBitCount=4時,2個像素佔1個位元組;
當biBitCount=8時,1個像素佔1個位元組;
當biBitCount=24時,1個像素佔3個位元組;
Windows規定一個掃描行所佔的位元組數必須是4的倍數(即以long為單位),不足的以0填充,
一個掃描行所佔的位元組數計算方法:
DataSizePerLine= (biWidth* biBitCount+31)/8; // 一個掃描行所佔的位元組數
DataSizePerLine= DataSizePerLine/4*4; // 位元組數必須是4的倍數
點陣圖數據的大小(不壓縮情況下):
DataSize= DataSizePerLine* biHeight;
二、BMP文件分析
1、 工具軟體:Hex Workshop 或 UltraEdit
2、 分析:首先請注意所有的數值在存儲上都是按"高位放高位、低位放低位的原則",如12345678h放在存儲器中就是7856 3412)。下圖是一張圖16進制數據,以此為例進行分析。在分析中為了簡化敘述,以一個字(兩個位元組為單位,如424D就是一個字)為序號單位進行,"h"表示是16進制數。
424D 4690 0000 0000 0000 4600 0000 2800
0000 8000 0000 9000 0000 0100 1000 0300
0000 0090 0000 A00F 0000 A00F 0000 0000
0000 0000 0000 00F8 0000 E007 0000 1F00
0000 0000 0000 02F1 84F1 04F1 84F1 84F1
06F2 84F1 06F2 04F2 86F2 06F2 86F2 86F2
1:圖像文件頭。424Dh='BM',表示是Windows支持的BMP格式。
2-3:整個文件大小。4690 0000,為00009046h=36934。
4-5:保留,必須設置為0。
6-7:從文件開始到點陣圖數據之間的偏移量。4600 0000,為00000046h=70,上面的文件頭就是35字=70位元組。
8-9:點陣圖圖信息頭長度。
10-11:點陣圖寬度,以像素為單位。8000 0000,為00000080h=128。
12-13:點陣圖高度,以像素為單位。9000 0000,為00000090h=144。
14:點陣圖的位面數,該值總是1。0100,為0001h=1。
15:每個像素的位數。有1(單色),4(16色),8(256色),16(64K色,高彩色),24(16M色,真彩色),32(4096M色,增強型真彩色)。T408支持的是16位格式。1000為0010h=16。
16-17:壓縮說明:有0(不壓縮),1(RLE 8,8位RLE壓縮),2(RLE 4,4位RLE壓縮),3(Bitfields,位域存放)。RLE簡單地說是採用像素數+像素值的方式進行壓縮。T408採用的是位域存放方式,用兩個位元組表示一個像素,位域分配為r5b6g5。圖中0300 0000為00000003h=3。
18-19:用位元組數表示的點陣圖數據的大小,該數必須是4的倍數,數值上等於點陣圖寬度×點陣圖高度×每個像素位數。0090 0000為00009000h=80×90×2h=36864。
20-21:用象素/米表示的水平解析度。A00F 0000為0000 0FA0h=4000。
22-23:用象素/米表示的垂直解析度。A00F 0000為0000 0FA0h=4000。
2:點陣圖使用的顏色索引數。設為0的話,則說明使用所有調色板項。
26-27:對圖象顯示有重要影響的顏色索引的數目。如果是0,表示都重要。
28-35:彩色板規范。對於調色板中的每個表項,用下述方法來描述RGB的值:
1位元組用於藍色分量
1位元組用於綠色分量
1位元組用於紅色分量
1位元組用於填充符(設置為0)
對於24-位真彩色圖像就不使用彩色表,因為點陣圖中的RGB值就代表了每個象素的顏色。但是16位r5g6b5位域彩色圖像需要彩色表,看前面的圖,與上面的解釋不太對得上,應以下面的解釋為准。
圖中彩色板為00F8 0000 E007 0000 1F00 0000 0000 0000,其中:
00FB 0000為FB00h=1111100000000000(二進制),是紅色分量的掩碼。
E007 0000為 07E0h=0000011111100000(二進制),是綠色分量的掩碼。
1F00 0000為001Fh=0000000000011111(二進制),是紅色分量的掩碼。
0000 0000總設置為0。
將掩碼跟像素值進行"與"運算再進行移位操作就可以得到各色分量值。看看掩碼,就可以明白事實上在每個像素值的兩個位元組16位中,按從高到低取5、6、5位分別就是r、g、b分量值。取出分量值後把r、g、b值分別乘以8、4、8就可以補齊第個分量為一個位元組,再把這三個位元組按rgb組合,放入存儲器(同樣要反序),就可以轉換為24位標准BMP格式了。

另外,用ultraedit可查看幾乎所有文件的二進制代碼,

⑦ 請大家幫我講解講解:BMP點陣圖文件的結構

BMP是一種與硬體設備無關的圖像文件格式,使用非常廣。它採用位映射存儲格式,除了圖像深度可選以外,不採用其他任何壓縮,因此,BblP文件所佔用的空間很大。BMP文件的圖像深度可選lbit、4bit、8bit及24bit。BMP文件存儲數據時,圖像的掃描方式是按從左到右、從下到上的順序。 由於BMP文件格式是Windows環境中交換與圖有關的數據的一種標准,因此在Windows環境中運行的圖形圖像軟體都支持BMP圖像格式。 典型的BMP圖像文件由三部分組成:點陣圖文件頭數據結構,它包含BMP圖像文件的類型、顯示內容等信息;點陣圖信息數據結構,它包含有BMP圖像的寬、高、壓縮方法,以及定義顏色等信息。 BMP圖像,即通常所說的點陣圖(Bitmap),是Windows系統中最為常見的圖像格式。Windows 3.0以前的版本只支持與設備相關點陣圖DDB(Device Dependent Bitmap)。DDB是一種內部點陣圖格式,它顯示的圖像依計算機顯示系統的設置不同而不同,因此一般不存儲為文件,與通常所說的BMP圖像不同。在Windows.h中,結構體BITMAP定義了DDB點陣圖的類型、寬度、高度、顏色格式和像素位值等,代碼如下:typedef struct tagBITMAP { int bmType; //點陣圖類型,必須設為0 int bmWidth; //點陣圖寬度 int bmHeight; //點陣圖高度 int bmWidthBytes; //點陣圖中每一掃描行中的位元組數 BYTE bmPlanes; //顏色層數 BYTE bmBitsPixel; //每一像素所佔的位數 void FAR* bmBits; //存放像素值內存塊的地址 }BITMAP; DDB中不包括顏色信息,顯示時是以系統的調色板為基礎進行像素的顏色映射的。Windows只能保證系統調色板的前20種顏色穩定不變,所以DDB只能保證正確顯示少於20色的點陣圖。Windows SDK提供標準的DDB點陣圖操作函數;MFC中定義了CBitmap類來說明DDB點陣圖,其中封裝了與DDB點陣圖操作相關的數據結構和函數。 Windows 3.1以上版本提供了對設備無關點陣圖DIB(Device Independent Bitmap)的支持。DIB點陣圖可以在不同的機器或系統中顯示點陣圖所固有的圖像。相對於DDB而言,DIB是一種外部點陣圖格式,經常存儲為常見的以BMP為後綴的點陣圖文件(有時也以DIB為後綴)。因此,通常所說的BMP圖像,即是DIB點陣圖。 BMP點陣圖文件包括4部分,即點陣圖文件頭結構BITMAPFILEHEADER、點陣圖信息頭結構BITMAPINFOHEADER、點陣圖顏色表RGBQUAD和點陣圖像素數據,BMP點陣圖文件的結構如圖下。 點陣圖文件頭結構BITMAPFILEHEADER點陣圖信息頭結構BITMAPINFOHEADER點陣圖顏色表RGBQUAD點陣圖像素數據下面介紹BMP文件頭、BMP點陣圖信息頭、顏色表這3個結構體在Windows.h中的定義如下: 1. BMP文件頭BMP文件頭含有BMP文件的類型、文件的大小、點陣圖文件的保留字、點陣圖數據距文件頭的偏移量等信息。定義如下: typedef struct tagBITMAPFILEHEADER { UINT bfType; //點陣圖文件的類型,必須為BM DWORD bfSize; //點陣圖文件的大小,以位元組為單位 UINT bfReserved1; //點陣圖文件保留字,必須為0 UINT bfReserved2; //點陣圖文件保留字,必須為0 DWORD bfOffBits; //點陣圖數據距文件頭的偏移量,以位元組為單位 } BITMAPFILEHEADER; 2. BMP點陣圖信息頭BMP點陣圖信息頭用於說明點陣圖的尺寸等信息,定義如下: typedef struct tagBIMAPINFOHEADER { DWORD biSize; //本結構所佔用位元組數 LONG biWidth; //點陣圖的寬度,以像素為單位 LONG biHeight; //點陣圖的高度,以像素為單位 WORD biPlanes; //目標設備的級別,必須為1 WORD biBitCount; //每個像素所需的位數,必須是1(雙色)、 //4(16色)、8(256色)或24(真彩色)之一 DWORD biCompression; //點陣圖壓縮類型,必須是 0(不壓縮)、 //1(BI_RLE8壓縮類型)或2(BI_RLE壓縮類型)之一 DWORD biSizeImage; //點陣圖的大小,以位元組為單位 LONG biXPelsPerMeter; //點陣圖水平解析度,每米像素數 LONG biYPelsPerMeter; //點陣圖垂直解析度,每米像素數 DWORD biClrUsed; //點陣圖實際使用的顏色表中的顏色數 DWORD biClrImportant; //點陣圖顯示過程中重要的顏色數 } BITMAPINFOHEADER; 3. 顏色表顏色表用於說明點陣圖中的顏色,它有若干個表項,每一個表項是一個RGBQUAD類型的結構,且定義一種顏色,定義如下: typedef struct tagRGBQUAD { BYTE rgbBlue; //藍色的亮度(值范圍為0~255) BYTE rgbGreen; //綠色的亮度(值范圍為0~255) BYTE rgbRed; //紅色的亮度(值范圍為0~255) BYTE rgbReserved; //保留,必須為0 } RGBQUAD; 點陣圖信息頭和顏色表組成點陣圖信息,BITMAPINFO結構定義如下: typedef struct tagBITMAPINFO { BITMAPINFOHEADER bmiHeader; RGBQUAD bmiColors[i]; } BITMAPINFO; 顏色表中RGBQUAD結構數據的個數由biBitCount來確定,當biBitCount=1、4、8時,分別有2、16、256個表項;當biBitCount=24時,沒有顏色表項。 點陣圖數據記錄了點陣圖的每一個像素值,記錄順序是在掃描行內從左到右、掃描行之間從下到上。點陣圖的一個像素值所佔的位元組數如下: l 當biBitCount=1時,8個像素佔1個位元組。 l 當biBitCount=4時,2個像素佔1個位元組。 l 當biBitCount=8時,1個像素佔1個位元組。 l 當biBitCount=24時,1個像素佔3個位元組。 Windows規定一個掃描行所佔的位元組數必須是4的倍數(即以long為單位),不足的以0填充,一個掃描行所佔的位元組數計算方法如下: DataSizePerLine=(biWidth×biBitCount+31)/8 這是本設計中的一個關鍵點,無論對圖像進行何種變換,都要進行掃描行的4位元組對齊。 除了上述的Windows BMP以外,還有一種與其結構相似,但不完全相同的另一種BMP圖像,即OS/2採用的BMP。其與Windows BMP的主要區別是點陣圖信息結構(信息頭結構和顏色表結構)不同。而它們的圖像位數據的存儲方式是完全一樣的。本設計只討論Windows系統下的BMP圖像,故對OS/2使用的BMP不進行詳細分析。

⑧ photoshop 保存bmp 為什麼不支持rle壓縮,選項是灰色的

RLE只能對8bit 256色的圖像壓縮

閱讀全文

與bmprle壓縮相關的資料

熱點內容
為什麼加密狗用在班班通上有聲音 瀏覽:508
如何刪除app訪問通訊錄 瀏覽:507
appstore不見了在哪裡弄 瀏覽:204
銀行解壓扣款會提前通知嗎 瀏覽:939
電腦版微信在電腦哪個文件夾 瀏覽:74
linux搜索文件命令 瀏覽:250
如何使用華為分享傳輸app 瀏覽:359
ipad能看pdf嗎 瀏覽:204
通信演算法課程 瀏覽:538
大法官pdf 瀏覽:479
如何重新綁定學校app 瀏覽:420
python本地cookie 瀏覽:643
au怎麼壓縮器 瀏覽:305
javag1源碼分析 瀏覽:693
碎片解壓模擬器小游戲打開入口 瀏覽:877
qq小程序第三方源碼 瀏覽:524
多用戶商城php源碼 瀏覽:421
華為雲伺服器0 瀏覽:149
出海寶源碼 瀏覽:706
你出錢我炒股源碼 瀏覽:182