c#中如何在已知图片上画圆?

pictureBox2.Image=curBitmap;//curBitmap是传进去的图片Graphicsgra=this.pictureBox2.CreateGrap... pictureBox2.Image = curBitmap;//curBitmap是传进去的图片
Graphics gra = this.pictureBox2.CreateGraphics();
Pen pen = new Pen(Color.Pink);//画笔颜色
gra.DrawEllipse(pen, 10, 10, 100, 100);//画椭圆的方法,x坐标、y坐标、宽、高,如果是100,则半径为50
为什么不能在图片上显示出所画的圆?
展开
 我来答
Seraph_fd
2014-02-28 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:61
采纳率:50%
帮助的人:56.6万
展开全部
pictureBox2.BackgroundImage = curBitmap;
试试

Graphics ga 会画在 创建它的Handler上。

你创建自 pictureBox,那么就是画在 pictureBox上的,而 pictureBox.Image 是呈现在 pictureBox之上的,所以覆盖了。
要么 设置为 BackGroundImage,成为 pictureBox 的底层。
要么直接画在 image上
ga = Graphics.FromImage(pictureBox2.Image);
更多追问追答
追问
谢谢,用pictureBox2.BackgroundImage = curBitmap;可以的 但是本身图片是800*600的,设置的pictureBox的大小是200*150,sizemode用的stretchimage,用了这句话之后,图片大小就还原了,没办法在pictureBox上显示全部。(这个星期刚学C#和图像处理,所以很多都不懂)
追答
虽然没太明白你的意思,但 背景图也是有 缩放模式的:
this.pictureBox_Main.BackgroundImageLayout = ImageLayout.Stretch;
网速有点卡,刷半天。
然后去远足
2014-02-28 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2417万
展开全部
因为你设置的 curBitmap 是给 Image 属性了,它会不断 OnPaint(),而你用 CreateGraphics 只画一次很快就被原图片刷掉了。

所以如果要用这种方法,需要给 BackgroundImage 赋值而不是 Image。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友1c6e06f
2014-02-28 · TA获得超过2894个赞
知道小有建树答主
回答量:695
采纳率:66%
帮助的人:656万
展开全部
你在外面画,界面一重绘就啥都没了,你注册下picturebox2的Paint事件,在Paint事件里画就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jqkalytrue
2014-02-28 · TA获得超过835个赞
知道小有建树答主
回答量:1509
采纳率:57%
帮助的人:377万
展开全部
你画在控件上了, 画的东西会被刷掉, 你画图片上就好了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式