找回密码
 立即注册

QQ登录

只需一步,快速开始

x1212chf

初级会员

17

主题

35

帖子

355

积分

初级会员

积分
355

活字格认证

[已处理] V19 ImageViewer

x1212chf
初级会员   /  发表于:2018-11-27 08:56  /   查看:3516  /  回复:1
怎么使用Graphics 在ImageViewer上绘制线条?

1.我使用ImageViewerAddRegionInteractiveMode 绘制矩形,绘制后,想在此矩形的基础上绘制#形;
我使用如下代码无效:
currentGraphics = this.imageViewer.CreateGraphics();
Leadtools.LeadRect leadRect = this.imageViewer.Image.GetRegionBounds(null);
if (leadRect.Width == imageViewer.Image.Width && leadRect.Height == imageViewer.Image.Height) return;
currentGraphics.DrawLine(Pens.Red, new Point(leadRect.X != 0 ? 0 : leadRect.X, leadRect.Y), new Point(leadRect.X == imageViewer.Image.Width ? leadRect.X : imageViewer.Image.Width, leadRect.Y));



原来V18 在RasterImageViewer 的PostImagePaint可以通过Graphics绘制时可行的。

V19中尝试在PostRender事件中也不行:
if (this.imageViewer.Image != null)
                {
                    Leadtools.LeadRect leadRect = this.imageViewer.Image.GetRegionBounds(null);
                    if (leadRect.Width == imageViewer.Image.Width && leadRect.Height == imageViewer.Image.Height)
                    {
                        return;
                    }

                    (e.Context as Graphics).DrawLine(Pens.Red, new Point(leadRect.X != 0 ? 0 : leadRect.X, leadRect.Y), new Point(leadRect.X == imageViewer.Image.Width ? leadRect.X : imageViewer.Image.Width, leadRect.Y));
                    //e.Graphics.DrawLine(Pens.Red, new Point(leadRect.X != 0 ? 0 : leadRect.X, leadRect.Y), new Point(leadRect.X == imageViewer.Image.Width ? leadRect.X : imageViewer.Image.Width, leadRect.Y));
                }


2.我想切分A3为A4,需要在A3影像上显示一条线,并且可以移动线条,以便修改切割区域,如何绘制线条。


1 个回复

倒序浏览
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2018-11-27 17:34:22
沙发

关于您说的第一个问题,您之前在18版本上用的是RasterImageViewer ,这个和19版本的ImageViewer 有所不同,因此有的方法可能就没法用,或者是改变了接口,19版本用ImageViewer 代替了RasterImageViewer

您现在是在测试评估19版本吗,如果是测试的话,建议您使用新版本来测试,目前我们的产品新版本为20版本

2.ImageViewer中无法绘制可以移动的线条,

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