图像处理的一个小问题??

heavyrain1234 2002-06-05 06:30:48
我想在image1中倒入一负图片暂时考虑bmp的,
然后在图片中画尽可能大的圆,要求圆不擦除图片原来背景等,
想了几天,没有什么好的方法,
我试了两个办法
1 在一个buttonclick中
倒入图片于image中(image的stretch=true)
然后:
Image1->Canvas->Brush=bsSolid;
Image1->Canvas->Brush->Style=bsClear;
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
结果生成的圆远小于image的大小,(只有1/4大小) 这个不知是为什么?

2 在一个buttonclick中
倒入图片于image中(image的stretch=true)
然后:
Image1->Canvas->Pen->Color=clBlack;
Image1->Canvas->Pen->Style=psDashDot;
Image1->Canvas->Pen->Mode=pmNop;
Image1->Canvas->Ellipse(0, 0,Image2->Width,Image2->Height);
这回好歹连圆都不显示了,
特来问问大家
...全文
44 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
mxp 2002-06-06
  • 打赏
  • 举报
回复
//设置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);

可以这样不?!
heavyrain1234 2002-06-06
  • 打赏
  • 举报
回复
我试了,在有图片且strech=true的情况下,
楼上几位的画图方法都是得不到image中最大的圆的,
我的理解是最大的圆也被strech=true个缩放了,
所以
bcb_alone(孤心) 说的是对的,

现在时我想画大圆怎么解决阿????

zdb1025 2002-06-06
  • 打赏
  • 举报
回复
学习
mygodness 2002-06-06
  • 打赏
  • 举报
回复
为什么我的上面可以呢?奇怪!
magicdu 2002-06-06
  • 打赏
  • 举报
回复
我的思路不同,为什么不用自绘功能呢?不设置画布的背景Color,而在它上面画园.
mygodness 2002-06-05
  • 打赏
  • 举报
回复
刚才加了一张图片,试了试:
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);
可以不盖对原来的图,效果正常,只不过没有点划线的效果
bcb_alone 2002-06-05
  • 打赏
  • 举报
回复
因为你设置的image1的stretch属性为true。而你画的
Image1->Canvas->Ellipse(0, 0,Image1->Width,Image1->Height);
stretch属性把你的画的圆也给缩放了。
mygodness 2002-06-05
  • 打赏
  • 举报
回复
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);
也可以
圆的大小是对的
heavyrain1234 2002-06-05
  • 打赏
  • 举报
回复
不是阿,你为什么说透明呢?我没设透明阿
huzhangyou 2002-06-05
  • 打赏
  • 举报
回复
用透明吗?

13,873

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧