如何判斷彩色或灰階圖? |
尚未結案
|
cmusic
一般會員 發表:8 回覆:1 積分:1 註冊:2005-10-01 發送簡訊給我 |
|
fnk
高階會員 發表:40 回覆:149 積分:102 註冊:2004-01-02 發送簡訊給我 |
1. 不論彩色或灰階都經過轉灰階再秀直方圖... 因為灰階的RGB是相同的值...經過灰階化...(R G B)/3 ...還是灰階...並不會有任何改變... 2. 若要更好的方式...可以去參考bitmap會有相關的資訊...來知道圖片當時是以彩色或灰階儲存的... 請看TBitmap的PixelFormat Indicates the bit format of the bitmap image, specifying how the image is displayed and how the pixels of the bitmap image are stored in memory. enum TPixelFormat {pfDevice, pf1bit, pf4bit, pf8bit, pf15bit, pf16bit, pf24bit, pf32bit, pfCustom}; 比如 pf8bit 就是灰階的...若pf16.pf24.pf32...都是彩色的... 給你參考... |
achillean
一般會員 發表:16 回覆:23 積分:7 註冊:2004-08-13 發送簡訊給我 |
bmp影像,只有使用者給予的灰階調色盤,沒有灰階影像
所以你得看你輸入的資料來斷定什麼叫做「灰階影像」 一般而言,pf8bit就是灰階影像 Graphics::TBitmap *pbmp; 所以你可以用pbmp->PixelFormat == pf8bit來判斷 而pf24bit( or 16bit?)以上的格式bmp檔案,BCB會使用他自己的調色盤 所以在這以上的格式,出來的影像顏色都是一樣的 而pf8bit影像再沒有設定過調色盤的狀態下,BCB預設是256色彩色 妳的問題可以用Byte *ptr去讀pbmp->ScanLine[i] 慢慢掃描得到像素值,搜尋ScanLine站內文章很多 或是直接用int value = pbmp->Canvas->Pixels[x][y] % 256,不需要管pixel format是何者 但是如果要精確的彩色轉灰階值就要分別對r,g,b(BCB順率為B,G,R)加權處理轉換到灰階值 |
hipig
高階會員 發表:31 回覆:75 積分:111 註冊:2007-01-15 發送簡訊給我 |
以PixelFormat判斷最為簡便的方式
但要特別注意8bit圖像有兩種 一種是灰階 另一種是256色(8色16色也算) 此外PixelFormat對二進位單色圖同樣消化不良 建議以檔頭來作判斷 此外jpg格式在bcb6中只有彩色沒有灰階顯示 我在http://delphi.ktop.com.tw/board.php?cid=31&fid=79&tid=86534 有利用PixelFormat判斷開圖是否彩色進而要求轉成灰階
編輯記錄
hipig 重新編輯於 2008-06-17 22:44:41, 註解 無‧
|
coolbabexx15
一般會員 發表:0 回覆:5 積分:1 註冊:2015-05-19 發送簡訊給我 |
編輯記錄
coolbabexx15 重新編輯於 2018-09-18 11:59:36, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |