首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

关于图片描边的有关问题

2012-09-24 
关于图片描边的问题。在图片上描边后我想取消描边不知道怎样做。请大家帮忙。下面是描边的代码。C/C++ codeTRe

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

下面是描边的代码。

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

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

热点排行