LEADTOOLS使用教程:图像的几何变换
1. 高级缩放类
类 |
调整已有图像的大小,并将调整后的图像设为目标图像,原始图像不变。 |
类 |
将图像调整到一个新的宽和高。 |
以下为使用 类的代码片段(注:Resize.rar):
1: RasterCodecs codecs = new RasterCodecs(); 2: string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp"); 3: string destFileName = Path.Combine(ImagesPath.Path, "ResizeCommand.bmp"); 4: 5: // 从磁盘加载原始图像 6: RasterImage srcImage = codecs.Load(srcFileName); 7: 8: // 创建目标图像 9: RasterImage destImage = new RasterImage( 10: RasterMemoryFlags.Conventional, 11: 100, 12: 100, 13: srcImage.BitsPerPixel, 14: srcImage.Order, 15: srcImage.ViewPerspective, 16: srcImage.GetPalette(), 17: IntPtr.Zero, 18: 0); 19: 20: // 将原始图像调整大小 21: ResizeCommand command = new ResizeCommand(); 22: command.DestinationImage = destImage; 23: command.Flags = RasterSizeFlags.Bicubic; 24: command.Run(srcImage); 25: 26: // 将调整后的图像保存至磁盘 27: codecs.Save(destImage, destFileName, RasterImageFormat.Bmp, 24); 28: 29: // 清理 30: srcImage.Dispose(); 31: destImage.Dispose(); 32: codecs.Dispose(); 以下为使用SizeCommand类的代码片段(注:Resize.rar): 1: RasterCodecs codecs = new RasterCodecs(); 2: string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp"); 3: string destFileName = Path.Combine(ImagesPath.Path,"SizeCommand.bmp"); 4: 5: // 从磁盘加载原始图像 6: RasterImage image = codecs.Load(srcFileName); 7: SizeCommand command = new SizeCommand(); 8: command.Width = 128; 9: command.Height = 128; 10: command.Flags = RasterSizeFlags.Resample; 11: command.Run(image); 12: 13: // 将图像保存至磁盘 14: codecs.Save(image, destFileName, RasterImageFormat.Bmp, 8); 15: 16: // 清理 17: image.Dispose(); 18: codecs.Dispose();
2. 高级裁剪类
类
|
裁剪当前图像,删除边缘的空白区域 |
类
|
若使用了类,可以使用此类获取裁剪时使用的矩形。 |
类
|
使用定义好的矩形裁剪图像。 |
以下为使用类的代码片段(注:CropCommand.rar):
1: // 加载图像 2: RasterCodecs codecs = new RasterCodecs(); 3: codecs.ThrowExceptionsOnInvalidImages = true; 4: RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg")); 5: 6: // 准备command 7: AutoCropCommand command = new AutoCropCommand(); 8: 9: //在误差20内自动裁剪图像 10: command.Threshold = 20; 11: 12: command.Run(image); 以下为使用AutoCropRectangleCommand类的代码片段(注:CropCommand.rar): 1: //加载图像 2: RasterCodecs codecs = new RasterCodecs(); 3: codecs.ThrowExceptionsOnInvalidImages = true; 4: 5: RasterImage image = codecs.Load(Path.Combine(LEAD_VARS.ImagesDir, "Master.jpg")); 6: 7: // 准备command 8: AutoCropRectangleCommand command = new AutoCropRectangleCommand(); 9: command.Threshold = 0; 10: command.Run(image); 11: MessageBox.Show("左 = " + command.Rectangle.Left.ToString() + "\n" + 12: "上 = " + command.Rectangle.Top.ToString() + "\n" + 13: "右 = " + command.Rectangle.Right.ToString() + "\n" + 14: "下 = " + command.Rectangle.Bottom.ToString()); 以下为使用CropCommand类的代码片段(注:CropCommand.rar): 1: RasterCodecs codecs = new RasterCodecs(); 2: string srcFileName = Path.Combine(ImagesPath.Path, "Image1.cmp"); 3: string destFileName = Path.Combine(ImagesPath.Path, "CropCommand.bmp"); 4: 5: //从磁盘中加载原始图像 6: RasterImage image = codecs.Load(srcFileName); 7: 8: // 从图像的各边裁剪掉100像素 9: CropCommand command = new CropCommand(); 10: command.Rectangle = new LeadRect( 11: 100, 12: 100, 13: image.Width - 100, 14: image.Height - 100); 15: command.Run(image); 16: 17: // 将其保存至磁盘 18: codecs.Save(image, destFileName, RasterImageFormat.Bmp, 24); 19: 20: // 清理 21: image.Dispose(); 22: codecs.Dispose();
3. 其他的高级变换类
类名 |
说明 |
类 |
以轴心点为中心,沿着弯曲的平面扭曲当前图像。这个中心点必须定义在图像内或区域内。若图像有一个区域,变换只应用于此区域。 这个类在及以上工具包中可用。 |
类 |
旋转和翻转图像数据,以获取想要的查看视角。 |
类 |
绕着一个圆柱扭曲图像。此命令只在及以上工具包中可用。 |
类 |
旋转特定的图像并拉直。 |
类 |
从顶端到底端或从左到右翻转RasterImage |
类 |
使用振幅数组通过所画的波形剪切图像。此命令仅在及以上工具包中可用。 |
类 |
通过振幅数组和旋转角度中指定的波形,扭曲图像。此命令仅在及以上工具包中可用。 |
类 |
将图像包裹在一个以曲线塑造的3D平面上。此命令只在及以上工具包中可用。 原图: 应用此效果后: |
类 |
将图像按着曲线塑造的3D平面的半径包裹。此命令只在及以上工具包中可用。 原始图像: 应用此效果后: |
类 |
使图片看起来像出自一个印象派画家之手。此命令只在及以上工具包中可用。 |
类 |
将图像沿着Z轴放置在平行平面,并朝着中心点弯曲。此命令只在及以上工具包中可用。 原始图像: 使用后的效果: |
类 |
将图像沿着Z轴放置在平行平面。此命令只在及以上工具包中可用。 原始图像: 使用后的效果: |
类 |
将图像从矩形转换为极坐标,反之亦然。此命令只在及以上工具包中可用。 |
类 |
通过将图像向中心挤压或从中心向外扩展来弯曲图像。此命令只在及以上工具包中可用。 |
类 |
通过绕着中心点旋转像素模糊图像。此命令只在及以上工具包中可用。 |
类 |
使用从中心辐射的波形扭曲图像。此命令只在及以上工具包中可用。 |
类 |
在同心圆内扭曲图像。此命令只在及以上工具包中可用。 |
类 |
以指定的度数旋转图像。此命令只在及以上工具包中可用。 |
方法 |
通过改变旋转。 |
类 |
以平行四边形的方式移动图像的角。 |
类 |
绕着一个3D球形,扭曲图像。此命令只在及以上工具包中可用。 |
类 |
根据旋转角度旋转图像,以产生漩涡的模式。此命令只在及以上工具包中可用。 |
方法 |
可完成特定格式的无损转换。 |
类 |
沿着Z轴在隧道中放置图像。此命令只在及以上工具包中可用。 原始图像: 使用后的效果: |
类 |
使用特定角度特定波形的两个垂直波扭曲图像。此命令只在及以上工具包中可用。 |
类 |
创建细线,以特定的角度引导它,作用于被影响的图像上。此命令只在及以上工具包中可用。 |
类 |
从特定中心点开始沿着半径线模糊图像。此命令只在及以上工具包中可用。 |
类 |
使用从特定中心放大的波形扭曲图像。此命令只在及以上工具包中可用。 |
4. 低级缩放方法
方法 |
使用方法将缓冲区调整为指定的新大小。
|
方法 |
为方法建立信息。
|
方法 |
清除方法中所有的数据变量和缓冲区。
|
转载来自于//blog.gcpowertools.com.cn/post/2014/09/12/geometric-transformations-by-leadtools.aspx