1. 高级缩放类
调整已有图像的大小,并将调整后的图像设为目标图像,原始图像不变。 | |
将图像调整到一个新的宽和高。 |
以下为使用ResizeCommand 类的代码片段(注: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. 高级裁剪类
| 裁剪当前图像,删除边缘的空白区域 |
| 若使用了AutoCropCommand类,可以使用此类获取裁剪时使用的矩形。 |
| 使用定义好的矩形裁剪图像。 |
以下为使用AutoCropCommand类的代码片段(注: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. 其他的高级变换类
类名 | 说明 |
以轴心点为中心,沿着弯曲的平面扭曲当前图像。这个中心点必须定义在图像内或区域内。若图像有一个区域,变换只应用于此区域。 这个类在Raster Pro及以上工具包中可用。 | |
旋转和翻转图像数据,以获取想要的查看视角。 | |
| 绕着一个圆柱扭曲图像。此命令只在Raster Pro及以上工具包中可用。 |
| 旋转特定的图像并拉直。 |
| 从顶端到底端或从左到右翻转RasterImage |
| 使用振幅数组通过所画的波形剪切图像。此命令仅在Raster Pro及以上工具包中可用。 |
| 通过振幅数组和旋转角度中指定的波形,扭曲图像。此命令仅在Raster Pro及以上工具包中可用。 |
将图像包裹在一个以曲线塑造的3D平面上。此命令只在Raster Pro及以上工具包中可用。 原图: 应用此效果后: | |
将图像按着曲线塑造的3D平面的半径包裹。此命令只在Raster Pro及以上工具包中可用。 原始图像: 应用此效果后: | |
使图片看起来像出自一个印象派画家之手。此命令只在Raster Pro及以上工具包中可用。 | |
将图像沿着Z轴放置在平行平面,并朝着中心点弯曲。此命令只在Raster Pro及以上工具包中可用。 原始图像: 使用后的效果: | |
将图像沿着Z轴放置在平行平面。此命令只在Raster Pro及以上工具包中可用。 原始图像: 使用后的效果: | |
| 将图像从矩形转换为极坐标,反之亦然。此命令只在Raster Pro及以上工具包中可用。 |
| 通过将图像向中心挤压或从中心向外扩展来弯曲图像。此命令只在Raster Pro及以上工具包中可用。 |
| 通过绕着中心点旋转像素模糊图像。此命令只在Raster Pro及以上工具包中可用。 |
| 使用从中心辐射的波形扭曲图像。此命令只在Raster Pro及以上工具包中可用。 |
| 在同心圆内扭曲图像。此命令只在Raster Pro及以上工具包中可用。 |
| 以指定的度数旋转图像。此命令只在Raster Pro及以上工具包中可用。 |
| 通过改变ViewPerspective旋转RasterImage。 |
| 以平行四边形的方式移动图像的角。 |
| 绕着一个3D球形,扭曲图像。此命令只在Raster Pro及以上工具包中可用。 |
| 根据旋转角度旋转图像,以产生漩涡的模式。此命令只在Raster Pro及以上工具包中可用。 |
| 可完成特定格式的无损转换。 |
沿着Z轴在隧道中放置图像。此命令只在Raster Pro及以上工具包中可用。 原始图像: 使用后的效果: | |
| 使用特定角度特定波形的两个垂直波扭曲图像。此命令只在Raster Pro及以上工具包中可用。 |
| 创建细线,以特定的角度引导它,作用于被影响的图像上。此命令只在Raster Pro及以上工具包中可用。 |
| 从特定中心点开始沿着半径线模糊图像。此命令只在Raster Pro及以上工具包中可用。 |
| 使用从特定中心放大的波形扭曲图像。此命令只在Raster Pro及以上工具包中可用。 |
4. 低级缩放方法
ResizeBuffer 方法 | 使用Start方法将缓冲区调整为指定的新大小。
|
Start 方法 | 为ResizeBuffer(Byte[],Int32,Int32,Int32)方法建立信息。
|
Stop 方法 | 清除Start方法中所有的数据变量和缓冲区。
|
转载来自于http://blog.gcpowertools.com.cn/post/2014/09/12/geometric-transformations-by-leadtools.aspx