線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:3749
推到 Plurk!
推到 Facebook!

如何將24bit 的彩色圖片轉換成 8 bit 灰階圖?

尚未結案
arnotsay
一般會員


發表:23
回覆:79
積分:20
註冊:2003-02-03

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-02-26 02:22:56 IP:218.162.xxx.xxx 未訂閱
不知有沒有 example code 可以參考呢?
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-02-26 08:16:40 IP:203.73.xxx.xxx 未訂閱
引言: 不知有沒有 example code 可以參考呢?
arnotsay 你好: 請參考以下的範例程式碼 < class="code"> Graphics::TBitmap *bmp=new Graphics::TBitmap; bmp->LoadFromFile("C:\\24bit.bmp"); bmp->PixelFormat=pf8bit; bmp->SaveToFile("C:\\8bit.bmp"); delete bmp; -- Enjoy Researching & Developing --
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
cmf
尊榮會員


發表:84
回覆:918
積分:1032
註冊:2002-06-26

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-02-26 09:57:43 IP:61.218.xxx.xxx 未訂閱
包大人:    arnotsay 是說 8 bit 灰階圖 所以您還要加入 轉成灰階的動作    僅供參考,歡迎繼續發言
------
︿︿
RaynorPao
版主


發表:139
回覆:3622
積分:7025
註冊:2002-08-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-02-26 11:20:20 IP:203.73.xxx.xxx 未訂閱
引言: arnotsay 是說 8 bit 灰階圖 所以您還要加入 轉成灰階的動作
喔~~謝謝 cmf 的提醒,請改成以下的寫法 < class="code"> void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *bmp24bitColor=new Graphics::TBitmap; Graphics::TBitmap *bmp8bitGray=new Graphics::TBitmap; bmp24bitColor->LoadFromFile("C:\\24bit.bmp"); bmp8bitGray->Width=bmp24bitColor->Width; bmp8bitGray->Height=bmp24bitColor->Height; for(int i=0; iWidth; i ) { for(int j=0; jHeight; j ) { TColor Color=bmp24bitColor->Canvas->Pixels[i][j]; BYTE R=GetRValue(Color); BYTE G=GetGValue(Color); BYTE B=GetBValue(Color); int Gray=(R G B)/3; Color=(TColor)RGB(Gray, Gray, Gray); bmp8bitGray->Canvas->Pixels[i][j]=Color; Application->ProcessMessages(); } } bmp8bitGray->PixelFormat=pf8bit; bmp8bitGray->SaveToFile("C:\\8bit.bmp"); delete bmp8bitGray; delete bmp24bitColor; } -- Enjoy Researching & Developing -- 發表人 - RaynorPao 於 2003/03/01 20:16:41
------
-- 若您已經得到滿意的答覆,請適時結案!! --
-- 欲知前世因,今生受者是;欲知來世果,今生做者是 --
-- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 --
arnotsay
一般會員


發表:23
回覆:79
積分:20
註冊:2003-02-03

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-03-01 20:04:59 IP:218.162.xxx.xxx 未訂閱
RaynorPao... 你的程式會出現以下的 warning...我找不出問題出在哪? Assigning unsigned long to TColor
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-03-02 00:44:01 IP:61.59.xxx.xxx 未訂閱
arnotsay您好: 試試將bmp8bitGray->Canvas->Pixels[i][j]=Color; 改成 bmp8bitGray->Canvas->Pixels[i][j]=TColor(Color); 順心
arnotsay
一般會員


發表:23
回覆:79
積分:20
註冊:2003-02-03

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-03-02 01:08:57 IP:218.162.xxx.xxx 未訂閱
引言: arnotsay您好: 試試將bmp8bitGray->Canvas->Pixels[i][j]=Color; 改成 bmp8bitGray->Canvas->Pixels[i][j]=TColor(Color); 順心
你好...也不是這個問題耶...我是過了...
clarion
一般會員


發表:5
回覆:15
積分:4
註冊:2003-11-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-06-16 01:33:27 IP:140.118.xxx.xxx 未訂閱
這個程式執行完, 所存的8bit.bmp是8-bit RGB color 格式, 而不是8-bit grayscale吶... 怎麼一回事吶?
albertyeh
一般會員


發表:0
回覆:2
積分:0
註冊:2004-03-01

發送簡訊給我
#9 引用回覆 回覆 發表時間:2004-06-26 02:07:19 IP:211.76.xxx.xxx 未訂閱
256色(8Bits) 的Bitmap 有包含調色盤的資訊, 不要忘了改喔
系統時間:2024-05-05 11:39:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!