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

圖檔轉換的問題

尚未結案
handosun5
一般會員


發表:5
回覆:1
積分:1
註冊:2005-03-30

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-17 20:54:44 IP:210.241.xxx.xxx 未訂閱
最近拿到了一個將圖分離成三原色的圖檔 不知要如何將.BLUE .RED .GRE此三各檔結合起來成我想要的圖檔格式 如TIF BMP等 自己本身對這部分又不熟,好像也不能使用市面常見的PHOTOSHOP等軟體處理 不知這個問題要屬於哪類便在此發問 感謝 希望有人能幫我解惑
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-18 00:35:33 IP:61.230.xxx.xxx 未訂閱
handosun5 您好:    真巧!我剛剛回覆過一篇將原圖拆成三原色圖檔的文章,我在該篇裡寫了一個拆原圖為三色圖的範例: 請問用pixel[i][j]的值取rgb http://delphi.ktop.com.tw/topic.php?TOPIC_ID=76767 該範例稍加修改一下後就可達到您要的動作了:
// 宣告三個暫存用的 Bitmap
Graphics::TBitmap *BmpR = new Graphics::TBitmap();
Graphics::TBitmap *BmpG = new Graphics::TBitmap();
Graphics::TBitmap *BmpB = new Graphics::TBitmap();    BmpR->LoadFromFile("c:\\rr.bmp");  // 載入紅色圖
BmpR->PixelFormat = pf24bit;
BmpG->LoadFromFile("c:\\gg.bmp");  // 載入綠色圖
BmpG->PixelFormat = pf24bit;
BmpB->LoadFromFile("c:\\bb.bmp");  // 載入藍色圖
BmpB->PixelFormat = pf24bit;    // TRGBTriple 是一個結構資料,使用它來處理以提高易讀性
TRGBTriple *ptrR;
TRGBTriple *ptrG;
TRGBTriple *ptrB;    for (int line=0; lineHeight; line  ) {
    TRGBTriple *ptrR = (TRGBTriple *)BmpR->ScanLine[line];
    TRGBTriple *ptrG = (TRGBTriple *)BmpG->ScanLine[line];
    TRGBTriple *ptrB = (TRGBTriple *)BmpB->ScanLine[line];
    for (int pixel=0; pixelWidth; pixel  ) {
        ptrR[pixel].rgbtGreen = ptrG[pixel].rgbtGreen;  // 將綠色資料併入紅色圖
        ptrR[pixel].rgbtBlue  = ptrB[pixel].rgbtBlue;  // 將藍色資料併入紅色圖
    }
}    // 將合併後的紅色圖 (已合併三原色為全彩圖) 儲存成 BMP 圖檔
BmpR->SaveToFile("c:\\rgb.bmp");    // 清除掉暫存的 Bitmap
delete BmpR;
BmpR = NULL;
delete BmpG;
BmpG = NULL;
delete BmpB;
BmpB = NULL;
我不清楚您的三原色圖檔是何種格式的檔案?上述程式敘述是以 .BMP 格式為例,您參考一下吧。 7 天天敲鍵盤 v 時時按滑鼠 8 發表人 - RedSnow 於 2005/08/18 00:38:20
系統時間:2024-05-04 16:36:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!