C#中如何实现图像以圆形局部放大
TextureBrush对象 texture有属性Transform ,为与此 TextureBrush 对象关联的图像定义局部几何变换。 我在他的代码中添加了
Matrix myMatrix = new Matrix();
myMatrix.Scale(2, 2, MatrixOrder.Append); //水平和垂直方向上放大2倍如辩
texture.Transform = myMatrix; 但位图放大还是失真了。
但是利用 TextureBrush纹理的方式平铺总有多个图像,而且还不能实现像楼主那样图像的局部放大并刷新。我尝试用椭圆块,但是椭圆顷悄对象是在WPF中定义的。。
头疼,这是我目前想到的。。
用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.");
}