TColor警告提示问题,请帮忙!
下面是代码:
- C/C++ code
void __fastcall TForm1::BitBtn2Click(TObject *Sender) //最大值法灰度化{float red, green, blue, max;TColor color;width = Image1 -> Picture -> Width;height = Image1 -> Picture -> Height;bitmap = new Graphics::TBitmap();bitmap -> Width = width;bitmap -> Height = height;for(i = 0; i < width-1; i++) for(j = 0; j < height-1; j++) { color = Image1 -> Canvas -> Pixels[i][j]; red = rgb[i][j].r_color = GetRValue(color); green = rgb[i][j].g_color = GetGValue(color); blue = rgb[i][j].b_color = GetBValue(color); max = red > green ? red : green > blue ? green : blue; bitmap -> Canvas -> Pixels[i][j] =RGB(max, max, max); } Image2 -> Picture -> Bitmap -> Assign(bitmap);}
run后会有如下提示,但是能够实现灰度化。这个warning如何debug掉?谢谢
[C++ Warning] Unit1.cpp(257): W8018 Assigning unsigned long to TColor
[C++ Warning] Unit1.cpp(286): W8018 Assigning unsigned long to TColor
[解决办法]
unsigned long给TColor赋值前加个强制类型转换 (TColor).
[解决办法]
是的,强制转换成TColor类型再赋值就行了。