請問一下各位前輩該怎麼劃直線???? |
尚未結案
|
小慶
一般會員 發表:45 回覆:31 積分:15 註冊:2004-09-29 發送簡訊給我 |
請問一下前輩們
小弟我現在有一張圖我把它分成三等份,然後在第一等份(由上而下為第一等份第二等份第三等份)我想由上到下,由左到右掃描...遇到pixel=255時就劃由上到下得線,小弟我現在怎麼畫出來的現在第一等份的一開始那邊....不知程式是否可請前輩幫我看看哪裡出錯了...謝謝各位..
圖案:
程式如下:{
Graphics::TBitmap *TheBitmap, *TempBitmap;
TempBitmap = new Graphics::TBitmap();
TempBitmap =Image1->Picture->Bitmap;
TempBitmap->PixelFormat = pf8bit;
Byte *ptr;
int w,h,i,j;
w=Image1->Width;
h=Image1->Height;
//unsigned short int piexl[640][480];
int n=0,line;
for(int i=0;i<=w;i++)
{
ptr=(Byte*) TempBitmap->ScanLine[i];
for(int j=0;j<=h/7;j++)
{
if(ptr[j]==255)
n++;
}
if(n<=2)
{
line=i;
break;
}
else
{
n=0;
}
}
Image1->Canvas->Pen->Color=clGreen;
Image1->Canvas->Pen->Width=5;
Image1->Canvas->Pen->Style=psSolid;
Image1->Canvas->MoveTo(line,0);
Image1->Canvas->LineTo(line,h/7);
}
|
richtop
資深會員 發表:122 回覆:646 積分:468 註冊:2003-06-10 發送簡訊給我 |
小慶 您好: 不完全了解您的意思。
不過倒是看到程式中有明顯的誤用,您好像把寬高的順序弄反了,先改一下再看看囉!
還有PixelFormat也會影響所作的寬度,這點也要注意一下!
for (int j=0;j<=h/7;j ) { ptr =(Byte*) TempBitmap->ScanLine[j]; for(int i=0;i<=w;i ) { if(ptr[i]==255) n ; } if (n<=2) { line=i; break; } else { n=0; } }RichTop 敬上 =====***** 把數學當工具,可以解決問題;將數學變能力,能夠發現並解決問題! =====##### |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |