圖檔的處理問題 |
缺席
|
ladese05
一般會員 發表:3 回覆:2 積分:1 註冊:2006-09-13 發送簡訊給我 |
各位大大們好
我的問題如下 我本來是一張一張處理圖形,需要將圖形放置image1中 接著對image1上面去讀取個別的Pixel資訊,在做處理 但是我想改成一次處理多張圖形 想直接讀到array中直接處理,請問有什麼比較好的辦法呢? 我有爬過一些文,看過一些方法 假設現在讀取圖檔的方法改成如下 [code cpp] if(OpenPictureDialog1->Execute()==true) { int bmp_count=0; //計算開了幾張圖 bmp_count = OpenPictureDialog1->Files->Count; for(int i=0;i BMP[i]=new Graphics::TBitmap(); BMP[i]->LoadFromFile(OpenPictureDialog1->Files->Strings[i].c_str()); } Image1->Picture->Assign(BMP[0]); //把圖畫出 } [/code] 下面是我本來對圖形要作處理的方法 需要從IMAGE1上面著手 但是想改成直接從array中處理 [code cpp] for(Countx=0;Countx colorvalue=GetPixel(Image1->Canvas->Handle,Countx,County); Picture[Countx][County]=( GetRValue(colorvalue) * 77.0 //R*0.3*256 GetGValue(colorvalue) * 151.0 //G*0.57*256 GetBValue(colorvalue) * 28.0)/256.0; //B*0.13*256 } [/code] 謝謝 |
ladese05
一般會員 發表:3 回覆:2 積分:1 註冊:2006-09-13 發送簡訊給我 |
[code cpp] for(Countx=0;Countx for(County=0;County { colorvalue=GetPixel(Image1->Canvas->Handle,Countx,County); Picture[Countx][County]=( GetRValue(colorvalue) * 77.0 //R*0.3*256 GetGValue(colorvalue) * 151.0 //G*0.57*256 GetBValue(colorvalue) * 28.0)/256.0; //B*0.13*256 } [/code] 我解決了,之前不懂scanline,爬了一些文看前輩們怎麼用 現在用scanline的方法去抓圖 我po一下我改的方法,直接對array去處理,而不用在圖片上去取值 [code cpp] for(County=0;County ptr=(unsigned char *)BMP[0]->ScanLine[County]; for(Countx=0;Countx b=ptr[3*Countx]; g=ptr[3*Countx 1]; r=ptr[3*Countx 2]; Picture[Countx][County]=( r * 77.0 //R*0.3*256 g * 151.0 //G*0.57*256 b * 28.0)/256.0; //B*0.13*256 } [/code] |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |