找回密码
 立即注册

QQ登录

只需一步,快速开始

wjy72

初级会员

17

主题

122

帖子

287

积分

初级会员

积分
287

活字格认证微信认证勋章

wjy72
初级会员   /  发表于:2017-9-20 16:07  /   查看:10239  /  回复:25
public void addTextToImage(string addText,LeadRectD lrd, double fontSize)
        {

            AnnTextObject text = new AnnTextObject();
            text.Stroke = null;//没有边框
            text.Text = addText;
            text.Font = new AnnFont("Arial", fontSize);
            text.Fill = null;
            text.Rect = lrd;//.ToLeadRectD();
            text.TextForeground = AnnSolidColorBrush.Create("Black");
            Automation.Container.Children.Add(text);
            Automation.Invalidate(LeadRectD.Empty);
            Automation.SelectObject(text);
        }

   iiWidth = imageViewer1.Image.ImageWidth;
   iiHeight = imageViewer1.Image.ImageHeight;

  imageLeft = (iiWidth / 2) - 30;
  imageTop = iiHeight - 30;

LeadRectD newLrD2 = LeadRectD.Create(imageLeft * 720, imageTop * 720, 700, 400);
  addTextToImage("原件模糊", newLrD2, 12);

     //固化
fixedAnnonation();

====================================================================================
这么一做后,文字添加不上去,只有图像的页码数添加在图像右下角,而我的意图,是将文字添加到下端正中,这是怎么回事?

25 个回复

正序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-11 15:44:49
26#
不客气,搞定了就好
回复 使用道具 举报
wjy72
初级会员   /  发表于:2017-10-11 14:49:50
25#
我搞定了,谢谢啦。
回复 使用道具 举报
wjy72
初级会员   /  发表于:2017-10-11 14:11:41
24#
那怎么将annotation框架区域设置成跟随图像变化而变化?全是ActualSize,去黑边之类的操作就太麻烦了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-11 14:03:59
23#
已经测试过了,修改过后位置是没有问题的,实际上之前会出现问题就是因为annotation框架区域的大小是和窗口大小一致,而当图像实际尺寸比窗口大时,就会导致这个问题(计算出来的宽度或者高度确实是图片宽度或高度的一半,但是还是比窗口宽高要大)
回复 使用道具 举报
wjy72
初级会员   /  发表于:2017-10-11 10:49:20
22#
我试了下,好像不是这个问题,全部设置为ActualSize,还是写到了角落里。而且我这个程序,会有去黑边之类的其他操作,一直设置为ActualSize,不现实。麻烦帮我看看,究竟是什么设置不对?
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-10 16:46:57
21#
Form1.cs      1092行

以下代码,因为ControlSizeMode设置的不一致导致。将值都设置为ActualSize即可

            imageViewer1.Zoom(ControlSizeMode.ActualSize, 1, LeadPoint.Empty);
            NewAnnotation(imageViewer1.Image);
            imageViewer1.Zoom(ControlSizeMode.FitAlways, 1, LeadPoint.Empty);
回复 使用道具 举报
wjy72
初级会员   /  发表于:2017-10-10 14:44:37
20#
我说测试中定位准确,是指代码中测试,获得的定位点(X,Y)是正确的,但测试中实际上被写到了角落边。
回复 使用道具 举报
wjy72
初级会员   /  发表于:2017-10-10 14:42:40
19#
定位,在测试中也不正确啊。比如我选中下端正中,但测试中,写到了右下角。只要是上下左右正中的选项,测试中都被写到四个角上了。
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2017-10-10 14:33:09
18#
wjy72 发表于 2017-10-10 11:02
你好喔,现在写文字是测试完成了,但定位好像有问题,四个角都没问题,就是正中,比如下端正中,上端正中, ...

不太理解测试中准确,但实际写到了四个角,是说在debug模式下面没有问题,但是release下面有问题吗?

因为这几个点我都测试过,都是没有问题的
回复 使用道具 举报
123下一页
您需要登录后才可以回帖 登录 | 立即注册
返回顶部