unsigned char* ptr = 0;
int R=0,G=0,B=0;
int R1=0,B1=0,G1=0;
for (int Y=0;Y<this->Image1->Height;Y++)
{
ptr = static_cast<unsigned char*>(this->Image1->Picture->Bitmap->ScanLine[Y]);
for (int X=0;X<this->Image1->Width;X++)
{
B = ptr[3*X];
G = ptr[3*X+1];
R = ptr[3*X+2];
ptr[3*X] = 0.299*R + 0.587*G + 0.114* B;
ptr[3*X+1] = ptr[3*X+2] = ptr[3*X];
}
}
this->Image1->Refresh();
for (int Y=0;Y<this->Image2->Height;Y++)
{
ptr = static_cast<unsigned char*>(this->Image2->Picture->Bitmap->ScanLine[Y]);
for (int X=0;X<this->Image2->Width;X++)
{
B = ptr[3*X];
G = ptr[3*X+1];
R = ptr[3*X+2];
/*
B1 = GetBValue(this->Image2->Canvas->Pixels[X][Y]);
G1 = GetGValue(this->Image2->Canvas->Pixels[X][Y]);
R1 = GetRValue(this->Image2->Canvas->Pixels[X][Y]);
if (B!= B1 || G!= G1 || R!= R1)
int a=0; //為了下中斷點看RGB值使用
*/
ptr[3*X] = 0.299*R + 0.587*G + 0.114* B;
ptr[3*X+1] = ptr[3*X+2] = ptr[3*X];
}
}
this->Image2->Refresh();
dW5zaWduZWQgY2hhciogcHRyID0gMDsKICBpbnQgUj0wLEc9MCxCPTA7CiAgaW50IFIxPTAsQjE9MCxHMT0wOwogIGZvciAoaW50IFk9MDtZPHRoaXMtPkltYWdlMS0+SGVpZ2h0O1krKykKICB7CiAgICBwdHIgPSBzdGF0aWNfY2FzdDx1bnNpZ25lZCBjaGFyKj4odGhpcy0+SW1hZ2UxLT5QaWN0dXJlLT5CaXRtYXAtPlNjYW5MaW5lW1ldKTsKICAgIGZvciAoaW50IFg9MDtYPHRoaXMtPkltYWdlMS0+V2lkdGg7WCsrKQogICAgewogICAgICBCID0gcHRyWzMqWF07CiAgICAgIEcgPSBwdHJbMypYKzFdOwogICAgICBSID0gcHRyWzMqWCsyXTsKCiAgICAgIHB0clszKlhdID0gMC4yOTkqUiArIDAuNTg3KkcgKyAwLjExNCogQjsKICAgICAgcHRyWzMqWCsxXSA9IHB0clszKlgrMl0gPSBwdHJbMypYXTsKICAgIH0KICB9CiAgdGhpcy0+SW1hZ2UxLT5SZWZyZXNoKCk7CiAgZm9yIChpbnQgWT0wO1k8dGhpcy0+SW1hZ2UyLT5IZWlnaHQ7WSsrKQogIHsKICAgIHB0ciA9IHN0YXRpY19jYXN0PHVuc2lnbmVkIGNoYXIqPih0aGlzLT5JbWFnZTItPlBpY3R1cmUtPkJpdG1hcC0+U2NhbkxpbmVbWV0pOwogICAgZm9yIChpbnQgWD0wO1g8dGhpcy0+SW1hZ2UyLT5XaWR0aDtYKyspCiAgICB7CiAgICAgIEIgPSBwdHJbMypYXTsKICAgICAgRyA9IHB0clszKlgrMV07CiAgICAgIFIgPSBwdHJbMypYKzJdOwoKICAgICAgLyoKICAgICAgQjEgPSBHZXRCVmFsdWUodGhpcy0+SW1hZ2UyLT5DYW52YXMtPlBpeGVsc1tYXVtZXSk7CiAgICAgIEcxID0gR2V0R1ZhbHVlKHRoaXMtPkltYWdlMi0+Q2FudmFzLT5QaXhlbHNbWF1bWV0pOwogICAgICBSMSA9IEdldFJWYWx1ZSh0aGlzLT5JbWFnZTItPkNhbnZhcy0+UGl4ZWxzW1hdW1ldKTsKICAgICAgaWYgKEIhPSBCMSB8fCBHIT0gRzEgfHwgUiE9IFIxKQogICAgICAgIGludCBhPTA7ICAvL+eCuuS6huS4i+S4reaWt+m7nueci1JHQuWAvOS9v+eUqAogICAgICAqLwoKICAgICAgcHRyWzMqWF0gPSAwLjI5OSpSICsgMC41ODcqRyArIDAuMTE0KiBCOwogICAgICBwdHJbMypYKzFdID0gcHRyWzMqWCsyXSA9IHB0clszKlhdOwogICAgfQogIH0KICB0aGlzLT5JbWFnZTItPlJlZnJlc2goKTs=