读书人

关于图片描边的有关问题

发布时间: 2012-09-24 13:49:42 作者: rapoo

关于图片描边的问题。
在图片上描边后我想取消描边不知道怎样做。
请大家帮忙。

下面是描边的代码。

C/C++ code
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);



[解决办法]
C/C++ code
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得到背景色,执行画线操作后,相当于抹掉了原来划的线,从而达到橡皮擦”的效果。

简单总结,就是:一次异或画线,两次异或为清除。
[解决办法]
最简单的办法就是把原来的图像重画一遍

读书人网 >C++ Builder

热点推荐