請個位高手幫我debug程式 |
尚未結案
|
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
小弟寫一個程式,雖然編譯可以執行可是Message欄位會出現下列訊息: [C++ Warning] Unit1.cpp(419): W8060 Possibly incorrect assignment 程式主要功能是取Image3一半高度的像素,並找出像素之間兩點紅色的距離 程式碼如下:
int D[2]; int ss; Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Bmp->Height=Image3->Height; Bmp->Width=Image3->Width; int dim=Bmp->Height/2; Byte *ptr; ptr = (Byte *)Bmp->ScanLine[dim]; for(int w=0; w請各位高手幫幫忙,謝謝! |
lu
高階會員 發表:11 回覆:189 積分:195 註冊:2003-11-19 發送簡訊給我 |
偶猜想你是要只取紅色的點吧,如果是那應該改成下面(如紅色程式碼)
int D[2]; int ss; Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Bmp->Height=Image3->Height; Bmp->Width=Image3->Width; int dim=Bmp->Height/2; Byte *ptr; ptr = (Byte *)Bmp->ScanLine[dim]; for(int w=0; w========================= 大家一起快樂寫程式 |
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
您好:修改如下
int D[2]; int ss; Graphics::TBitmap *Bmp = new Graphics::TBitmap(); Bmp->Height=Image3->Height; Bmp->Width=Image3->Width; int dim=Bmp->Height/2; Byte *ptr; ptr = (Byte *)Bmp->ScanLine[dim]; int i=0; for(int w=0; w |
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
|
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
|
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
|
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
|
sew
一般會員 發表:2 回覆:54 積分:21 註冊:2003-08-25 發送簡訊給我 |
|
JerryKuo
版主 發表:42 回覆:571 積分:322 註冊:2003-03-10 發送簡訊給我 |
|
StrongLemon
高階會員 發表:10 回覆:166 積分:105 註冊:2004-04-18 發送簡訊給我 |
您好:我測試出來的Code..問題點在於你紅色點是B:0;G:0;R:254,
不是255,另外點陣圖的顏色數16bit or 24bit還必須多加判斷。
可以在K.Top搜尋ScanLine相信你會得到更多資訊。
void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *pBitBmp = new Graphics::TBitmap(); TMemoryStream *pMemoryStream =new TMemoryStream; try { Image1->Picture->Bitmap->SaveToStream(pMemoryStream); pMemoryStream->Position=0; pBitBmp->LoadFromStream(pMemoryStream); int PixelFormatBytes; if (pBitBmp->PixelFormat==pf16bit) PixelFormatBytes=2; else if (pBitBmp->PixelFormat==pf24bit) PixelFormatBytes=3; //PixelFormatBytes=3; pBitBmp->Height=Image1->Height; pBitBmp->Width=Image1->Width; int dim=pBitBmp->Height/2; dim=dim 5; Byte *ptr; ptr = (Byte *)pBitBmp->ScanLine[dim]; int wWidth=pBitBmp->Width; int MinValue=-1; int MaxValue=-1; int PointCount=0; for(int W=0;W |
williams8807
一般會員 發表:40 回覆:37 積分:15 註冊:2003-11-22 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |