关于图片描边的问题。
在图片上描边后我想取消描边不知道怎样做。
请大家帮忙。
下面是描边的代码。
TRect rct;rct=Rect(Image1->Left-1,Image1->Top-1,Image1->Left+Image1->Width+1,Image1->Top+Image1->Height+1);this->Canvas->Pen->Color=clRed;this->Canvas->Pen->Width=8;this->Canvas->Brush->Style=bsClear;this->Canvas->Rectangle(rct);
void __fastcall TForm1::Button1Click(TObject *Sender){TRect rct;rct=Rect(Image1->Left-1,Image1->Top-1,Image1->Left+Image1->Width+1,Image1->Top+Image1->Height+1);this->Canvas->Pen->Mode = pmNotXor;//画、擦除 切换this->Canvas->Pen->Color=clRed;this->Canvas->Pen->Width=8;this->Canvas->Brush->Style=bsClear;this->Canvas->Rectangle(rct);}
[解决办法]
pmNotXor表示用当前色与背景色进行异或处理,不是得到黑色。
pen.color与背景色异或处理一次后,后得画线的颜色,可以执行正常画线操作;
再用pen.color与原来画线的部分进行异或处理,将消除pen.color得到背景色,执行画线操作后,相当于抹掉了原来划的线,从而达到橡皮擦”的效果。
简单总结,就是:一次异或画线,两次异或为清除。
[解决办法]
最简单的办法就是把原来的图像重画一遍