這次作業是三原色RGB(紅綠藍)的數值改變,從(0,0,0)黑色到(255,255,255)白色重複堆疊所用出的色彩模型。左中右個固定RGB各一個顏色,軸用來改變像素。
void __fastcall TForm1::TrackBar1Change(TObject *Sender)
{
int R= TrackBar1->Position;
Image13->Width=256;
Image13->Height=256;
Image13->Picture->Bitmap->Width=256;
Image13->Picture->Bitmap->Height=256;
Image13->Picture->Bitmap->PixelFormat=pf24bit;
for (j=0;j<256;j++)
{
bPtrImageRow0 = (Byte *)Image13->Picture->Bitmap->ScanLine[j];
for (i=0; i<256; i++)
{
bPtrImageRow0[3*i+0] = i;
bPtrImageRow0[3*i+1] = j;
bPtrImageRow0[3*i+2] = R;
}
}
Image13->Refresh();
}這是其中的一個色彩的程式。這個做出來可以直接把照好的照片轉成bmp檔load進去,就可以把照片的底色像素可以改掉,很方便。
上課聽老師講得很簡單,5行左右就用出來,自己寫的時候有點不知道該如何下手,遇到了很多問題迴圈那裏也有些小錯誤。還好有請教同學,也一一慢慢地跟我講解,才做完這次作業。
沒有留言:
張貼留言