全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1164
推到 Plurk!
推到 Facebook!

為什麼影像沒有畫出來?

缺席
encoref70036
一般會員


發表:29
回覆:47
積分:15
註冊:2011-05-18

發送簡訊給我
#1 引用回覆 回覆 發表時間:2011-09-01 14:47:52 IP:114.26.xxx.xxx 訂閱
我在Child上有放了一個Image1如下圖:

程式碼:
TMDIChild *Child;
Child = (TMDIChild *)ActiveMDIChild;
float Y_value,U_value,V_value,R_value,G_value,B_value;
Byte *Yptr,*Uptr,*Vptr,*ptr;
Graphics::TBitmap *Ybmp = new Graphics::TBitmap;//讀取Y檔用的
Ybmp->LoadFromFile(ExtractFilePath(ParamStr(0)) "Y.bmp");//與程式同一路徑下
Graphics::TBitmap *Ubmp = new Graphics::TBitmap;//讀取U檔用的
Ubmp->LoadFromFile(ExtractFilePath(ParamStr(0)) "U.bmp");//與程式同一路徑下
Graphics::TBitmap *Vbmp = new Graphics::TBitmap;//讀取V檔用的
Vbmp->LoadFromFile(ExtractFilePath(ParamStr(0)) "V.bmp");//與程式同一路徑下
int w=Ybmp->Width;
int h=Ybmp->Height;
Graphics::TBitmap *RGBbmp = new Graphics::TBitmap;//存轉出的RGB用的
RGBbmp->Width=w;
RGBbmp->Height=h;
RGBbmp->PixelFormat=pf32bit;
for (int y=0; y {
Yptr =(Byte*)Ybmp->ScanLine[y];
Uptr =(Byte*)Ubmp->ScanLine[y];
Vptr =(Byte*)Vbmp->ScanLine[y];
ptr = (Byte*)RGBbmp->ScanLine[y];
for (int x=0; x {
Y_value =Yptr[x*4]=Yptr[x*4 1]=Yptr[x*4 2];
U_value =Uptr[x*4]=Uptr[x*4 1]=Uptr[x*4 2];
V_value =Vptr[x*4]=Vptr[x*4 1]=Vptr[x*4 2];
//YCrCb -> RGB
R_value = Y_value 1.402*V_value;
R_value = 0.5;
G_value = Y_value-0.34413*U_value-0.71414*V_value;
G_value = 0.5;
B_value = Y_value 1.772*U_value;
B_value = 0.5;
ptr[x*4]=B_value;
ptr[x*4 1]=G_value;
ptr[x*4 2]=R_value;
}
}
Child->Image1->Canvas->Draw(0,0,RGBbmp);
可是點了這個按鈕以後 影像並沒有畫上去 如下圖:

可是我不是有寫Child->Image1->Canvas->Draw(0,0,RGBbmp);這句嗎? 怎麼影像會沒有畫上去?
但是如果先開一張圖片 再按這個按鈕 影像就可以畫得上去了 請問是為什麼呢?

編輯記錄
encoref70036 重新編輯於 2011-09-01 00:48:43, 註解 無‧
encoref70036
一般會員


發表:29
回覆:47
積分:15
註冊:2011-05-18

發送簡訊給我
#2 引用回覆 回覆 發表時間:2011-09-01 15:57:55 IP:114.26.xxx.xxx 訂閱
用這個就可以了Child->Image1->Picture->Bitmap->Assign(RGBbmp);
但不知道為什麼Child->Image1->Canvas->Draw(0,0,RGBbmp);不行
系統時間:2024-04-26 9:09:10
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!