熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> PB編程 >> 正文

Powerbuilder中Kodak圖像掃描控件應用技巧[1]

2013-11-23 17:26:40  來源: PB編程 

    引言

  當前在開發管理信息系統中Sybase公司的Powerbuilder(下文中簡稱PB)是一個使用非常廣泛的語言工具其數據窗口功能使得數據庫系統的開發變得非常簡單和快捷筆者在使用Powerbuilder 版本開發一個管理信息系統時要求把人員的身份證照片掃描並存入數據庫在使用Kodak圖像掃描控件時碰到了麻煩圖像能夠掃描並存成圖像文件但是在PB中就是不能顯示經過筆者查閱各種資料並對掃描形成的文件格式進行分析終於解決了這個問題筆者把相關技術知識及處理方法寫出來以便大家參考

   BMP文件的結構

  首先介紹一下BMP文件的知識

  BMP文件可分為四個部分位圖文件頭位圖信息頭彩色板圖像數據陣列

   D E

  

   B B

   FF FF FF F F F E F

   圖像文件頭

  (:(這裡的數字代表的是即兩個字節下同)圖像文件頭Dh=BM表示是Windows支持的BMP格式

  (:整個文件大小 h=

  (:保留必須設置為

  (:從文件開始到位圖數據之間的偏移量E Eh=

  (:位圖圖信息頭長度一般為h=字節

  (:位圖寬度以像素為單位 h=

  (:位圖高度以像素為單位 h=

  (:位圖的位面數該值總是h=

   位圖信息頭

  (:每個像素的位數(單色)色)色)K色高彩色)M色真彩色)M色增強型真彩色)h=

  (:壓縮說明(不壓縮)(RLE 位RLE壓縮)(RLE 位RLE壓縮)(Bitfields位域存放)RLE簡單地說是采用像素數+像素值的方式進行壓縮T采用的是位域存放方式用兩個字節表示一個像素位域分配為rbg圖中 h=

  (:用字節數表示的位圖數據的大小該數必須是的倍數數值上等於位圖寬度×位圖高度×每個像素位數 h=××h=

  (:用像素/米表示的水平分辨率B Bh=

  (:用像素/米表示的垂直分辨率B Bh=

  (:位圖使用的顏色索引數設為的話則說明使用所有調色板項

  (:對圖象顯示有重要影響的顏色索引的數目如果是表示都重要

   彩色板

  :彩色板規范

   圖像數據陣列

  每兩個字節表示一個像素陣列中的第一個字節表示位圖左下角的像素而最後一個字節表示位圖右上角的像素

   用Kodak圖像掃描控件掃描出來的BMP不能顯示的原因分析

  通過BMP結構知識的了解我們對BMP的結構有了一個基本的認識對於PB中Kodak圖像掃描控件掃描出來的BMP文件為什麼不能顯示我們來看看掃描出來的文件頭部分

   D AA A A C

   DC

   A B D B D

  

  

  對比BMP文件結構知識裡面的說明我們可以發現第字節的內容為C 而不是一般的 查閱其它資料後發現在Windows等操作系統中位圖信息頭的長度並不一定是h因為微軟已經制定出了新的BMP文件格式其中的信息頭結構變化比較大長度加長會不會是這個原因引起PB程序不能顯示這個格式的Bmp文件呢?筆者把掃描的文件用UltraEdit進行了編輯保持其它的不動字節從C 改為 然後用PB打開果然圖像顯示出來了這證明PB只是認識以前格式的BMP文件對新的BMP文件格式不能識別因而不能顯示

[]  []  


From:http://tw.wingwit.com/Article/program/PB/201311/24589.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.