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

尋邊貼標籤 請前輩看看程式有沒有問題!

 
mp_0223
一般會員


發表:16
回覆:32
積分:9
註冊:2006-10-02

發送簡訊給我
#1 引用回覆 回覆 發表時間:2006-12-03 03:51:25 IP:163.23.xxx.xxx 訂閱
小地做了一個尋邊貼標籤程式  執行時沒問題  但不知道有沒有貼到標籤
想請各位前輩幫小弟看看有沒有問題!!
void __fastcall TForm1::Button7Click(TObject *Sender)
{

int label;
Bitmap1->LoadFromFile("C.bmp");
Image2->Picture->Assign(Bitmap1);
pBitmap1->Assign(Image2->Picture->Bitmap);
pBitmap1->PixelFormat = pf24bit;//24bit
Byte *ptr;
for (int i=0;iHeight;i )
{
ptr=(Byte*)Bitmap1->ScanLine[i];
for (int j=0;jWidth; j )
{
p2[j][i]=ptr[j*3];
label=L_BASE;

}
}
for (int i=0;iHeight;i )
{
ptr=(Byte*)Bitmap1->ScanLine[i];
for (int j=0;jWidth; j )
{
if(p2[j][i]==clBlack)
{
if(label>=clBlack)
{
ptr[j*3]=Filter2(j,i);label ;
ptr[j*3 1]=Filter2(j,i);label ;
ptr[j*3 2]=Filter2(j,i);label ;
}
}
}
}
Image2->Stretch=true;
Image2->Height *=1;
Image2->Width *=1;
Image2->Picture->Assign(Bitmap1);
Image2->Picture->SaveToFile("D.bmp");
delete Bitmap1;
}
//---------------------------------------------------------------------------
int __fastcall TForm1::Filter2(int i,int j)
{
int label;
int cnt=0;
int im=i-1,ip=i 1,jm=j-1,jp=j 1;
int p[10];
p[1]=p2[i-1][j-1];
p[2]=p2[i][j-1];
p[3]=p2[i 1][j-1];
p[4]=p2[i-1][j];
p[5]=p2[i][j];
p[6]=p2[i 1][j];
p[7]=p2[i-1][j 1];
p[8]=p2[i][j 1];
p[9]=p2[i 1][j 1];
for (int i=0;iHeight ;i )
{
for (int j=0;jWidth;j )
{
if(Bitmap1->Canvas->Pixels[i][j] == label)
{
if(im<0)im=0;if(ip>Height-1) ip=Height-1;
if(jm<0)im=0;if(jp>Width-1) ip=Width-1;
// 判斷 (x 1,y)
if(Bitmap1->Canvas->Pixels[i 1][j] == clWhite)
{
p[6]==label;cnt ;
}
// 判斷 (x 1, y-1)
if(Bitmap1->Canvas->Pixels[i 1][j-1] == clWhite)
{
p[3]==label;cnt ;
}
// 判斷 (x,y-1)
if(Bitmap1->Canvas->Pixels[i][j-1] == clWhite)
{
p[2]==label;cnt ;
}
// 判斷 (x-1,y-1)
if(Bitmap1->Canvas->Pixels[i-1][j-1] == clWhite)
{
p[1]==label;cnt ;
}
// 判斷 (x-1,y)
if(Bitmap1->Canvas->Pixels[i-1][j] == clWhite)
{
p[4]==label;cnt ;
}
// 判斷 (x-1,y 1)
if(Bitmap1->Canvas->Pixels[i-1][j 1] == clWhite)
{
p[7]==label;cnt ;
}
// 判斷 (x,y 1)
if(Bitmap1->Canvas->Pixels[i][j 1] == clWhite)
{
p[8]==label;cnt ;
}
// 判斷 (x 1,y 1)
if(Bitmap1->Canvas->Pixels[i 1][j 1] == clWhite)
{
p[9]==label;cnt ;
}
}
if (cnt==0)break;
}
}
return (cnt);
}
mp_0223
一般會員


發表:16
回覆:32
積分:9
註冊:2006-10-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2006-12-04 23:44:36 IP:163.23.xxx.xxx 訂閱
請問我想將標籤後的字  變成紅色
要加在哪裡 因為不管怎麼改都是黑色的!!
mp_0223
一般會員


發表:16
回覆:32
積分:9
註冊:2006-10-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2006-12-12 23:08:42 IP:220.130.xxx.xxx 訂閱
請前輩指導一下  這程式有沒有寫錯
因為我不知道有沒有貼到標籤
justdo
高階會員


發表:2
回覆:359
積分:222
註冊:2004-08-17

發送簡訊給我
#4 引用回覆 回覆 發表時間:2006-12-13 07:49:02 IP:59.105.xxx.xxx 未訂閱
另外放一個Image元件,若是有label到點,就在另外一個Image元件上把這個點畫出來,這樣對你除錯很有幫助
mp_0223
一般會員


發表:16
回覆:32
積分:9
註冊:2006-10-02

發送簡訊給我
#5 引用回覆 回覆 發表時間:2006-12-13 12:57:38 IP:163.23.xxx.xxx 訂閱
另外放一個image 元件  我有放
但是我看不出來有沒有貼到標籤ㄟ!!
系統時間:2024-04-20 16:30:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!