2007年3月21日 星期三

仿製畫筆


今天老師一開始先叫我們大家先用用看phtoimpact裡的一個工具==>仿製畫筆

作業就是叫我們用BCB寫出跟仿製畫筆一樣的功能
(要利用到scanline和array)




















但是這是沒用SCANLINE所寫的,因為對SCANLINE的用法還在摸索中,
所以先用自己所會的方法來寫寫看.

程式碼:
void __fastcall TForm1::Image1MouseMove(TObject *Sender, TShiftState Shift,
int X, int Y)
{
int R=0,G=0,B=0;
R=GetRValue(Image2->Canvas->Pixels[X][Y]);
G=GetGValue(Image2->Canvas->Pixels[X][Y]);
B=GetBValue(Image2->Canvas->Pixels[X][Y]);
Image1->Canvas->Pixels[X][Y]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X][Y-1]);
G=GetGValue(Image2->Canvas->Pixels[X][Y-1]);
B=GetBValue(Image2->Canvas->Pixels[X][Y-1]);
Image1->Canvas->Pixels[X][Y-1]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X][Y+1]);
G=GetGValue(Image2->Canvas->Pixels[X][Y+1]);
B=GetBValue(Image2->Canvas->Pixels[X][Y+1]);
Image1->Canvas->Pixels[X][Y+1]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X-1][Y]);
G=GetGValue(Image2->Canvas->Pixels[X-1][Y]);
B=GetBValue(Image2->Canvas->Pixels[X-1][Y]);
Image1->Canvas->Pixels[X-1][Y]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X+1][Y]);
G=GetGValue(Image2->Canvas->Pixels[X+1][Y]);
B=GetBValue(Image2->Canvas->Pixels[X+1][Y]);
Image1->Canvas->Pixels[X+1][Y]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X+1][Y+1]);
G=GetGValue(Image2->Canvas->Pixels[X+1][Y+1]);
B=GetBValue(Image2->Canvas->Pixels[X+1][Y+1]);
Image1->Canvas->Pixels[X+1][Y+1]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X-1][Y-1]);
G=GetGValue(Image2->Canvas->Pixels[X-1][Y-1]);
B=GetBValue(Image2->Canvas->Pixels[X-1][Y-1]);
Image1->Canvas->Pixels[X-1][Y-1]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X-1][Y+1]);
G=GetGValue(Image2->Canvas->Pixels[X-1][Y+1]);
B=GetBValue(Image2->Canvas->Pixels[X-1][Y+1]);
Image1->Canvas->Pixels[X-1][Y+1]=(TColor)RGB(R,G,B);

R=GetRValue(Image2->Canvas->Pixels[X+1][Y-1]);
G=GetGValue(Image2->Canvas->Pixels[X+1][Y-1]);
B=GetBValue(Image2->Canvas->Pixels[X+1][Y-1]);
Image1->Canvas->Pixels[X+1][Y-1]=(TColor)RGB(R,G,B);

}

沒有留言: