找回密码
 立即注册

QQ登录

只需一步,快速开始

wjy72

初级会员

17

主题

122

帖子

287

积分

初级会员

积分
287

活字格认证微信认证勋章

wjy72
初级会员   /  发表于:2015-10-27 14:45  /   查看:23874  /  回复:42
LeadRect dest = new LeadRect(this.imageViewer1.Image.Width - 120, this.imageViewer1.Image.Height - 80, 107,62);

然后在 AnnTextObject  中:
AnnTextObject text = new AnnTextObject();
text.Rect = lr.ToLeadRectD();

这个左下角位置不对啊,请问如何解决?

42 个回复

倒序浏览
iceman
社区贡献组   /  发表于:2015-10-27 18:28:00
沙发
回复 1楼wjy72的帖子

出现这个问题可能是Image宽高属性和LeadRect构造函数不一致,你的需求我理解是希望自动把注释添加到图片左下角,是否一致?

明天我会继续跟进这个问题。
回复 使用道具 举报
wjy72
初级会员   /  发表于:2015-10-28 09:38:00
板凳
不是。这个场景是这样的:
1.批量添加字符或者页码。(比如全是A4页)
2.在第一张图像里自定义LeadRect。
3.后面在每张图像里按第一张的LeadRect选定区域,在LeadRect里添上字符或者页码。
4.每张图像添加完后都进行固定注释,并保存图像。

所以,选定区域不是固定的,需要用LeadRect转换为LeadRectD,但现在转换好像不准,所以问问。
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-10-28 18:01:00
地板
回复 3楼wjy72的帖子

为什么要通过 LeadRect 转换?直接生成 LeadRectD 可以满足你的需求吗?

  1. LeadRectD dest = new LeadRectD(this.imageViewer1.Image.Width - 120, this.imageViewer1.Image.Height - 80, 1000, 500);
复制代码
回复 使用道具 举报
wjy72
初级会员   /  发表于:2015-10-29 10:33:00
5#
看场景,是需要先定义区域的,所以有leadRect,然后再转换。
回复 使用道具 举报
wjy72
初级会员   /  发表于:2015-10-29 10:39:00
6#
回复 3楼wjy72的帖子

为什么要通过 LeadRect 转换?直接生成 LeadRectD 可以满足你......
iceman 发表于 2015-10-28 18:01:00


你这个区域我试了,不是右下角啊。
原来
int inch=720.0
LeadRectD lrd = LeadRectD.Create(this.imageViewer1.Image.Width*inch, this.imageViewer1.Image.Height*inch, inch, inch);
是右下角,现在也不是了,根本找不到了。啥原因?现在要准确定位这个LeadRectD中的top,left
回复 使用道具 举报
iceman
社区贡献组   /  发表于:2015-10-29 18:09:00
7#
回复 6楼wjy72的帖子

问题我们正在调查中,有进一步结果后通知你。
回复 使用道具 举报
wjy72
初级会员   /  发表于:2015-11-4 13:24:00
8#
现在有没有进一步结果啊?
回复 使用道具 举报
AvoCaDolol活字格认证 Wyn认证
社区贡献组   /  发表于:2015-11-4 16:15:00
9#
回复 8楼wjy72的帖子

您好,您的问题经过检查发现是AnnotationContainer的大小引发的。
在初始化时,您使用了FitAlways来让图片铺满整个界面,这时绘制的Container的大小出错了。
所以建议是,您去掉FitAlways方法,让用户手动选择,这样Container的大小不会有问题,各种坐标计算也就正确了。
回复 使用道具 举报
wjy72
初级会员   /  发表于:2015-11-5 09:05:00
10#
明显不妥,这就需要用户再点一下,增加工作量。
回复 使用道具 举报
12345下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部