找回密码
 立即注册

QQ登录

只需一步,快速开始

南京老魏

注册会员

5

主题

10

帖子

35

积分

注册会员

积分
35
南京老魏
注册会员   /  发表于:2019-8-20 16:06  /   查看:2697  /  回复:1
使用 SizeCommand 来扩大图像,代码如下:

SizeCommand sizeCommand = new SizeCommand();
sizeCommand.Width = iNewWidth;
sizeCommand.Height = iNewHeight;
sizeCommand.Flags = RasterSizeFlags.None;
sizeCommand.Run(img);




请教,怎样做出第三个图的效果?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

1 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2019-8-20 17:36:12
沙发
SizeCommand这个是用于更改图像整体尺寸的,但是看你需要的效果似乎更类似于PS中更改画布大小的操作

在leadtools中,可以通过CombineCommand命令,叠加两个图像来完成
背景图:填充白色的新建rasterimage ,尺寸大于前景图
前景图:原图

两个图片执行CombineCommand命令叠加后就是你要的效果,
附上代码和效果
  1. RasterImage SrcImage, backImage;
  2.                RasterCodecs _codecs;

  3.                _codecs = new RasterCodecs();

  4.                SrcImage = _viewerBefore.Image.Clone();

  5.                backImage = new RasterImage(RasterMemoryFlags.Conventional, SrcImage.Width + 50, SrcImage.Height + 50, 24, RasterByteOrder.Bgr, RasterViewPerspective.TopLeft, null, IntPtr.Zero, 0);

  6.                FillCommand Fill = new FillCommand();
  7.                Fill.Color = Leadtools.Demos.Converters.FromGdiPlusColor(Color.White);
  8.                Fill.Run(backImage);

  9.                CombineCommand Combine = new CombineCommand();
  10.                Combine.DestinationRectangle = new LeadRect(0, 0, SrcImage.Width, SrcImage.Height);
  11.                Combine.SourcePoint = new LeadPoint(0, 0);
  12.                Combine.SourceImage = SrcImage;
  13.                Combine.Run(backImage);

  14.                _viewerAfter.Image = backImage.Clone();
复制代码







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部