C#中如何实现图像以圆形局部放大

使用graphic对象g.drawImage(image,srcRect,destRect,GraphicsUnit)可以实现图像的局部放大,但是是矩形的。现在我想放大的... 使用graphic对象 g.drawImage(image,srcRect,destRect,GraphicsUnit)可以实现图像的局部放大,但是是矩形的。现在我想放大的那部分是圆形,该怎么做? 展开
 我来答
百度网友d71c7d7bf6
2011-04-05 · TA获得超过177个赞
知道答主
回答量:70
采纳率:0%
帮助的人:60.4万
展开全部
th79d的想法是雀橡渣好的,但实际还没有放大图形,我接着他的想法说;
TextureBrush对象 texture有属性Transform ,为与此 TextureBrush 对象关联的图像定义局部几何变换。 我在他的代码中添加了
Matrix myMatrix = new Matrix();
myMatrix.Scale(2, 2, MatrixOrder.Append); //水平和垂直方向上放大2倍如辩
texture.Transform = myMatrix; 但位图放大还是失真了。
但是利用 TextureBrush纹理的方式平铺总有多个图像,而且还不能实现像楼主那样图像的局部放大并刷新。我尝试用椭圆块,但是椭圆顷悄对象是在WPF中定义的。。
头疼,这是我目前想到的。。
th79d
2011-04-04 · TA获得超过265个赞
知道小有建树答主
回答量:203
采纳率:0%
帮助的人:255万
展开全部

用TextureBrush类填充

 try

  {

       Bitmap image1 = (Bitmap)Image.FromFile(@"..\..\water lilies.bmp", true);

       //TextureBrush类使用图像填充形状的内部

    TextureBrush texture = new TextureBrush(image1);

       //当纹理和渐变小于填充区域时,Tile模式是平铺渐变或纹理

    texture.WrapMode = 圆世手System.Drawing.Drawing2D.WrapMode.Tile;

       Graphics formGraphics = this.CreateGraphics();

       //FillEllipse方法橘嫌填充椭圆内部,椭圆由坐标、宽度和高度决定

    formGraphics.FillEllipse(texture, new RectangleF(40.0F, 70.0F, 200, 160));

      返派 formGraphics.Dispose();

   }

  catch(System.IO.FileNotFoundException)

  {

    MessageBox.Show("There was an error opening the bitmap." +  "Please check the path.");

  }

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
taotaotaotao涛
2012-05-12
知道答主
回答量:2
采纳率:0%
帮助的人:3193
展开全部
g.drawImage(image,srcRect,destRect,GraphicsUnit)不斗简能对图像睁仔放大吧 好像只能对图像悉销汪的一部分查看
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
changyan_
2011-04-04 · 超过42用户采纳过TA的回答
知道小有建树答主
回答量:217
采纳率:0%
帮助的人:91.8万
展开全部
百度一下吧,
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式