[問題]讀bmp到一個陣列 |
尚未結案
|
jxxyyzz
一般會員 發表:1 回覆:0 積分:0 註冊:2005-10-17 發送簡訊給我 |
大大好
我想要讀bmp到一個陣列 這是搜尋文章之前的範例加以修改
會satck overflow 請問哪裡錯了 還有我想把24bits 直接抓進陣列
不要分成RGB 要怎麼修改 感謝
void __fastcall TForm1::Button1Click(TObject *Sender)
{ if(OpenDialog1->Execute()){
Image1->Picture->LoadFromFile(OpenDialog1->FileName); Graphics::TBitmap *Bmp = new Graphics::TBitmap();
Bmp->Assign(Image1->Picture->Bitmap); //Image1圖傳給Bmp
Bmp->PixelFormat=pf24bit;
Byte *ptr;
int R[512][512],G[512][512],B[512][512]; //假設Image1大小為100*100
//宣告儲存R,G,B三值的陣列
for (int i=0;i<512;i )
{
ptr=(Byte *)Bmp->ScanLine[i]; //用ScanLine由左而右向每一像素點分別取出RGB三值) 再由上而下掃
for(int j=0;j<512;j ) //B=ptr[3*j];G=ptr[3*j 1];R=ptr[j*3 2];
{
B[i][j]=ptr[3*j];
G[i][j]=ptr[3*j 1];
R[i][j]=ptr[3*j 2];
}
}
}
}
|
RedSnow
版主 發表:79 回覆:1322 積分:845 註冊:2003-12-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |