我想在image1中倒入一负图片暂时考虑bmp的,
然后在图片中画尽可能大的圆,要求圆不擦除图片原来背景等,
想了几天,没有什么好的方法,
我试了两个办法
1 在一个buttonclick中
倒入图片于image中
然后:
Image1->Canvas->Brush=bsSolid;
Image1->Canvas->Brush->Style=bsClear;
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
结果生成的圆远小于image的大小, 这个不知是为什么?
2 在一个buttonclick中
倒入图片于image中
然后:
Image1->Canvas->Pen->Color=clBlack;
Image1->Canvas->Pen->Style=psDashDot;
Image1->Canvas->Pen->Mode=pmNop;
Image1->Canvas->Ellipse(0, 0,Image2->Width,Image2->Height);
这回好歹连圆都不显示了,
特来问问大家
用透明吗?
Image1->Canvas->Brush->Style=bsSolid;
Image1->Canvas->Brush->Color=clRed;
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
以上是我试验的代码,我用着可以呀,顺便问一下:
Image1->Canvas->Brush=bsSolid;是什么意思属性bsSolid是style的值才对呀!
Image1->Canvas->Brush->Color=clRed;
Image1->Canvas->Brush->Style=bsClear;
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
也可以
圆的大小是对的
因为你设置的image1的stretch属性为true。而你画的
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
stretch属性把你的画的圆也给缩放了。
//设置Image1的strech=false;
//设置Image2的AutoSize=true;
//把图像调到Image2中,比如Image2->Picture->LoadFromFile(...);
Image1->Canvas->StretchDraw(Rect(0,0,Image1->Width,Image1->Height),Image2->Picture->Bitmap);
Image1->Canvas->Pen->Color=clRed;
Image1->Canvas->Pen->Style=psDashDotDot;
Image1->Canvas->Pen->Width=3;
Image1->Canvas->Brush->Style=bsClear;
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
可以这样不?!
我的思路不同,为什么不用自绘功能呢?不设置画布的背景Color,而在它上面画园.