亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

如何在 Java 應用程序中讀取 8 位和 24 位 Microsoft Windows 位圖(轉)

2019-11-18 13:45:33
字體:
來源:轉載
供稿:網友
如何在 java 應用程序中讀取 8 位和 24 位 Microsoft Windows 位圖
在 Java 應用程序中加載位圖文件的逐步指南


作者:Jeff West 和 John D. Mitchell
摘要
目前,標準的 getImage() 方法僅支持 GIF 和 JPEG 圖像。盡管存在用于讀取 PNG(可移植網絡圖形)格式的 Java 例程,但我們還沒聽說過有用于讀取 Microsoft Windows 位圖圖像的閱讀程序。Jeff West 撰寫的這篇技巧提供了加載 Windows 位圖圖像的代碼。
Java 的當前發行版并不正式支持在 Java 應用程序中讀取 Microsoft Windows 位圖文件。但別擔心,我們有辦法解決這個問題!這篇技巧將說明如何完成這一任務 -- 我們首先說明讀取 Microsoft Windows 文件格式的基本步驟。
Windows DIB(設備獨立的位圖)文件格式比較簡單。與純位圖格式不同,DIB 格式保留著用于在內存中存儲圖像的明確信息。問題是圖像格式的變體如此之多(1 位、4 位、8 位和 16 位,以及其他格式)。本篇 Java 技巧中提供的解決方案只處理 8 位和 24 位兩種格式。這兩種格式代表了最常見的變體。
不管是哪種 Windows DIB 子類型,這種文件格式總是由 14 位文件頭和 40 位信息頭組成。這兩個標頭精確包含有關文件的存儲內容和存儲次序的信息。有關標頭中每一項的確切含義,請參考 Microsoft Software Development Kit (SDK)。文件其余部分的內容隨信息頭中數據的不同而不同。
我們看一下本文要處理的兩種子類型。24 位格式很簡單:RGB(紅-綠-藍)顏色值(3 個字節,并按 BGR 排序)緊接在信息頭之后。但是,每個掃描行都被補足到 4 個字節。按照說明文檔(請參閱 Microsoft SDK)的說法,這種“補足”是為了優化 Windows 位圖繪圖 API。同時,底部的掃描行是文件中的第一項內容 -- 因此相對普通的圖形坐標系統(其矢量方向的正向分別為向下和向右)而言,必須從后向前讀取圖像。
8 位子類型由于在信息頭和象素數據之間插入調色板信息而復雜化。因此,每個象素條目只是進入 24 位 RGB 顏色的調色板數組的一個 8 位索引。在象素信息中,每個掃描行同樣被補足到 4 個字節。
請注重,本文提供的位圖圖像加載方法不支持對壓縮位圖圖像進行解壓縮。實際上,這個例程甚至不尋求這種可能性!假如碰到壓縮 Windows DIB 文件,該例程肯定會產生異常。Windows SDK 中有對壓縮 Windows DIB 格式的說明。
至于性能,在運行 Microsoft Windows 95 的 486-DX2-66MHz 系統上,該例程讀取 24 位 640 x 480 的文件(大約 920 千字節)所需的時間不超過 10 秒。使用 BufferedInputStream 而不是 FileInputStream 可明顯提高性能。
以下例程讀取兩種文件格式中的任一種,并生成一個 Image 圖像。以下代碼并未包含全面的錯誤和異常處理,以避免使該例程更加復雜。您總可用 Windows Paint 程序對不支持的 Windows DIB 子類型進行轉換。
    /**
loadbitmap() 方法由 Windows C 代碼轉換而來。
只能讀取未壓縮的 24 位和 8 位圖像。已在
Windows 95 上用 Microsoft Paint 保存的圖像
對它進行了測試。假如圖像不是 24 位或 8 位圖像,
該程序拒絕進行任何嘗試。我猜測假如先用 1100,
然后用 0011 對字節執行掩碼操作,則也可將 4 位
圖像包括在內。我實際上對這些圖像不感愛好。
假如嘗試讀取壓縮圖像,該例程可能失敗,并產生
一個 IOException 異常。假如變量 ncomPRession
不為 0,則表示已經過壓縮。

參數:
     sdir 和 sfile 是 FileDialog 的
     getDirectory() 和 getFile() 方法的結果。

返回值:
     Image 對象,切記要檢查 (Image)null !!!!

    */
    public Image loadbitmap (String sdir, String sfile)
{
Image image;
System.out.println("loading:"+sdir+sfile);
try
     {
     FileInputStream fs=new FileInputStream(sdir+sfile);
     int bflen=14; // 14 字節 BITMAPFILEHEADER
     byte bf[]=new byte[bflen];


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美精品福利视频| 久久久亚洲欧洲日产国码aⅴ| 成人av电影天堂| 宅男66日本亚洲欧美视频| 91黑丝在线观看| 色偷偷888欧美精品久久久| 亚洲一区精品电影| 国产视频精品一区二区三区| 久久久日本电影| 亚洲国产精品人久久电影| 欧美性一区二区三区| 成人精品久久久| 亚洲第一视频网站| 亚洲电影第1页| 日本成人精品在线| 国产精品旅馆在线| 亚洲电影免费观看高清完整版在线观看| 日韩中文字幕视频在线观看| 中文字幕精品影院| 亚洲图片欧美午夜| 九九热这里只有精品6| 国产综合香蕉五月婷在线| 久久久久久av| 欧美亚洲第一区| 欧美成人免费在线视频| 亚洲精品久久久久国产| 欧美在线视频免费观看| 茄子视频成人在线| 91精品国产综合久久久久久蜜臀| 国产日韩视频在线观看| 伊人伊人伊人久久| 日韩在线视频一区| 宅男66日本亚洲欧美视频| 亚洲一区二区精品| 精品美女永久免费视频| 午夜精品国产精品大乳美女| 国产日韩欧美在线观看| 91亚洲精品在线| 国产一区二区三区在线| 国产日韩精品综合网站| 草民午夜欧美限制a级福利片| 欧美日韩在线视频首页| 亚洲国产精品人久久电影| 国语自产精品视频在线看一大j8| 欧美精品一本久久男人的天堂| 久久久久久久国产精品视频| 午夜免费日韩视频| 亚洲欧洲国产精品| 久久久久久久久国产| 国自在线精品视频| 最新91在线视频| 欧美极品少妇xxxxⅹ喷水| 国产亚洲精品高潮| 日韩视频欧美视频| 亚洲一区二区三| 国产精品久久久久久av福利| 亚洲天堂av在线免费| 久久理论片午夜琪琪电影网| 亚洲va欧美va国产综合久久| 欧美性猛交xxxx黑人| 欧美精品久久久久久久久久| 91免费电影网站| 成人免费看吃奶视频网站| 狠狠干狠狠久久| 成人免费激情视频| 国产精品video| 欧美野外猛男的大粗鳮| 在线日韩欧美视频| 日韩欧美极品在线观看| 精品欧美aⅴ在线网站| 欧美最猛黑人xxxx黑人猛叫黄| 成人免费在线视频网址| 欧美性高潮床叫视频| 亚洲国产精品成人一区二区| 亚洲精品在线看| 97久久精品人人澡人人爽缅北| 久久久国产一区二区| 久久免费视频网站| 久久久免费高清电视剧观看| 亚洲精品小视频| 欧美精品福利视频| 欧美亚洲国产视频| 4438全国亚洲精品在线观看视频| 热久久这里只有| 91精品在线观| 国产精品69av| 欧美疯狂xxxx大交乱88av| 欧美体内谢she精2性欧美| 欧美日韩中文字幕日韩欧美| 亚洲欧美在线免费| 国产精品国模在线| 亚洲欧洲在线看| 中文字幕久热精品在线视频| 久久免费精品日本久久中文字幕| 亚洲国产精品嫩草影院久久| 国产99视频精品免视看7| 成人精品久久av网站| 欧美成人免费全部观看天天性色| 欧美性色19p| 午夜精品在线观看| 亚洲视频在线观看视频| 国产精品亚洲аv天堂网| 欧美电影免费观看| 日韩在线观看电影| 91久久精品国产91久久| 这里只有精品丝袜| 久久精品国产精品| 精品动漫一区二区| 亚洲理论电影网| 日本高清视频一区| 国产91精品不卡视频| 亚洲小视频在线观看| 日韩欧美一区视频| 国产精品久久久久99| 97国产精品视频人人做人人爱| 宅男66日本亚洲欧美视频| 国产精品高潮呻吟久久av野狼| 91高清视频免费| 亚洲午夜精品久久久久久久久久久久| 日韩小视频在线| 91精品国产91久久久久久| 国内精品久久久久久久| 久热精品在线视频| 精品久久久久久久久久久久| 久久免费视频观看| 原创国产精品91| 亚洲成人激情在线观看| 26uuu另类亚洲欧美日本老年| 久久国产精品久久久| 91精品在线播放| 91精品国产综合久久久久久久久| 国产精品美女av| 日本19禁啪啪免费观看www| 亚洲成色www8888| 久久国产天堂福利天堂| 日韩电视剧在线观看免费网站| 欧美日韩一区二区精品| 精品福利在线视频| 日韩美女视频免费在线观看| 国产精品日韩在线观看| 久久精品视频一| 日韩在线免费高清视频| 国产精品极品在线| 欧美午夜女人视频在线| 日韩免费电影在线观看| 亚洲最大的网站| 一区二区三区 在线观看视| 日韩av电影在线免费播放| 日韩av免费看| 精品人伦一区二区三区蜜桃免费| 97视频免费看| 都市激情亚洲色图| 色综合色综合网色综合| 成人国内精品久久久久一区| 91香蕉电影院| 亚洲视频视频在线| 国产精品久久久久久久9999| 欧美亚洲国产日本| 亚洲欧洲午夜一线一品| 色偷偷888欧美精品久久久| 欧美在线性视频| 97香蕉超级碰碰久久免费软件| 久久97久久97精品免视看| 91精品国产九九九久久久亚洲|