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

圖檔的處理問題

缺席
ladese05
一般會員


發表:3
回覆:2
積分:1
註冊:2006-09-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2008-05-26 20:13:08 IP:140.136.xxx.xxx 訂閱
各位大大們好
我的問題如下

我本來是一張一張處理圖形,需要將圖形放置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 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]

謝謝
ladese05
一般會員


發表:3
回覆:2
積分:1
註冊:2006-09-13

發送簡訊給我
#2 引用回覆 回覆 發表時間:2008-05-28 18:35:22 IP:60.198.xxx.xxx 訂閱

[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]
系統時間:2024-05-06 3:18:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!