找回密码
 立即注册

QQ登录

只需一步,快速开始

polarstars

注册会员

2

主题

5

帖子

21

积分

注册会员

积分
21
最新发帖

[已处理] 旋转水印图片

polarstars
注册会员   /  发表于:2018-9-4 16:23  /   查看:4121  /  回复:7
你好,
     我想把水印图片旋转一个角度,但是使用如下代码
         RotateCommand rotate = new RotateCommand();
         rotate.Angle = 45 * 100;
         rotate.FillColor = RasterColor.FromKnownColor(RasterKnownColor.Transparent);
         rotate.Flags = RotateCommandFlags.Resize;
         rotate.Run(watermarkClone);

      
     水印的底色不是透明而是白色,且旋转后存在图片缺失(左上角却一块)的问题,请问应该如何实现这一功能?
    LeadTools 19 C#开发.

本帖子中包含更多资源

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

x

7 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-5 12:33:45
沙发
您好,旋转这个命令不会改变原图大小,是在原图的矩形区域内旋转因此肯定会出去一部分,您可以缩小后再旋转

另外透明色的话,需要先设置rasterImage可以使用透明色
ri.Transparent = true;
回复 使用道具 举报
polarstars
注册会员   /  发表于:2018-9-5 14:27:15
板凳
rotate.Flags = RotateCommandFlags.Resize;
不是自动旋转时放大图片吗,我如果把RotateCommandFlags.none,才是原图大小吧
回复 使用道具 举报
polarstars
注册会员   /  发表于:2018-9-5 14:34:14
地板
附件是工程文件
RotateCommand rotate = new RotateCommand();       rotate.Angle = 45 * 100;       rotate.FillColor = RasterColor.FromKnownColor(RasterKnownColor.Transparent);       rotate.Flags = RotateCommandFlags.Resize;       watermarkClone.Transparent = true; //无效       rotate.Run(watermarkClone);

本帖子中包含更多资源

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

x
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-6 12:25:59
5#
这个显示不全的问题不是旋转导致的,旋转后的图像是完整的,

是在合并过程中对水印图片进行的裁剪导致的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-10 14:33:15
6#
在你的代码中加入alphaBlend.SourcePoint = new LeadPoint(0, 0);
这样就可以了,就不会缺少一部分了
回复 使用道具 举报
polarstars
注册会员   /  发表于:2018-9-10 14:43:00
7#
Richard.Ma 发表于 2018-9-10 14:33
在你的代码中加入alphaBlend.SourcePoint = new LeadPoint(0, 0);
这样就可以了,就不会缺少一部分了

试了一下确实不少了,那个旋转后底色透明的问题如何解决呢?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-9-10 17:57:24
8#
不要用AlphaBlendCommand
用CombineCommand来合并,flag设置为ResultNop
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部