在本主题▼< / div >< div id ="inThisTopicDialog" class="hide">

ImageViewerSpyGlassInteractiveMode对象

总结< / div >

在观看者上绘制和平移一个窥镜。

语法< / div >< div id ="mainSourceContainerSyntax">
打印稿< / div >
JavaScript< / div >< / div >
函数lt.Controls.ImageViewerSpyGlassInteractiveMode扩展lt.Controls.ImageViewerInteractiveMode
lt.Controls.ImageViewerSpyGlassInteractiveMode ()扩展ImageViewerInteractiveMode
讲话< / div >

ImageViewerSpyGlassInteractiveMode源自ImageViewerInteractiveMode并订阅以下事件的InteractiveService

ImageViewerSpyGlassInteractiveMode交互模式不会对查看器执行任何操作(除了绘制监视玻璃)。由用户来实现所需的任何定制操作。例如,要实现一个放大镜,ImageViewerMagnifyGlassInteractiveMode源自ImageViewerSpyGlassInteractiveMode并重写OnDrawImage方法绘制望远镜玻璃下区域的放大版本。

ImageViewerSpyGlassInteractiveMode工作内容如下:

  1. 当一个dragStarted事件时,则InteractiveEventArgs。IsHandled属性设置为真正的在查看器的顶部创建一个临时的HTML5 Canvas Element,用于绘制间谍玻璃。请注意,如果您设置自己的帆布InteractiveModeCanvas属性,则此对象将不会创建帆布(也不使用上述属性)。相反,你帆布将被用作间谍玻璃的表面。

  2. 当一个dragDelta事件时,则InteractiveEventArgs.isHandled属性设置为真正的而暂时的帆布移动到当前位置。的ImageViewerSpyGlassInteractiveMode。DrawImage事件在此时触发,以允许实现者和侦听器在监视玻璃表面上执行任何自定义操作。

  3. 当一个dragCompleted事件时,则InteractiveEventArgs.isHandled属性设置为真正的而暂时的帆布是删除。

ImageViewerSpyGlassInteractiveMode还支持将输出重定向到外部帆布而不是观看器表面。示例请参见RedirectCanvas.既不ImageViewerSpyGlassInteractiveMode也不ImageViewerMagnifyGlassInteractiveMode当图像查看器在时工作元素模式,因为查看者不绘制项目。

有关更多信息,请参阅图像查看器交互模式

例子< / div >

这个例子将使用ImageViewerSpyGlassInteractiveMode在鼠标下显示图像的翻转版本。

SpyGlassInteractiveMode.ts< / div >
ImageViewer.ts< / div >
SpyGlassInteractiveMode.js< / div >
ImageViewer.js< / div >
SpyGlassInteractiveMode.html< / div >< / div >< div id ="GenericContainerEntry5106" class="GenericContainerEntry">
进口{ImageViewer_Example}从“. . / imageview”出口SpyGlassInteractiveMode_Example {私人viewerExample;构造函数() {.viewerExample =ImageViewer_Example (.run);私人run =(查看器:lt.Controls.ImageViewer) => {viewer.interactiveModes.clearItems ();viewer.interactiveModes.beginUpdate ();//创建望远镜常量spyGlass: lt.Controls.ImageViewerSpyGlassInteractiveMode =lt.Controls.ImageViewerSpyGlassInteractiveMode ();望远镜。写成backgroundColor ="rgba(255,255,0, 0.5)"望远镜。autoItemMode = lt.Controls.ImageViewerAutoItemMode.autoSet;//在绘制时,绘制翻转的查看器spyGlass.drawImage。Add ((sender, e) => {常量rect: lt.LeadRectD = e.destinationRectangle;常量ctx: CanvasRenderingContext2D = e.context;//画布的宽度和高度常量controlSize: lt. leadsize = viewer.controlSize;ctx.save ();//取消望远镜的偏移量ctx.translate(矩形。x, -rect.y);//翻转上下文ctx。规模(1,1);ctx。翻译(0,-controlSize.height);//绘制视图viewer.renderRedirect (ctx,lt.Controls.ImageViewerRenderRedirectOptions (), lt.LeadRectD.empty);ctx.restore ();});viewer.interactiveModes.add(望远镜);viewer.interactiveModes.endUpdate ();
出口ImageViewer_Example {//在这个例子中使用的LEADTOOLS ImageViewer受保护的imageViewer: lt.Controls.ImageViewer =//示例使用的一般状态值公共timesClicked:数量= 0;构造函数(回调?:(viewer: lt.Controls.ImageViewer) =>无效) {//设置LEADTOOLS license。用实际的许可证文件替换此文件lt.RasterSupport.setLicenseUri (“https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt”“EVAL”);//在imageViewerDiv元素中创建一个图像查看器常量imageViewerDiv = document.getElementById(“imageViewerDiv”);常量createOptions: lt.Controls.ImageViewerCreateOptions =lt.Controls.ImageViewerCreateOptions (imageViewerDiv);.imageViewer =lt.Controls.ImageViewer (createOptions);.imageViewer。viewverticalalign = lt. controls . controlalign .center;.imageViewer。viewhizontalalignment = lt.Controls.ControlAlignment.center;.imageViewer。autoCreateCanvas =真正的//增加Pan/Zoom交互模式//点击拖动可平移,CTRL-Click拖动可放大缩小.imageViewer.interactiveModes.add (lt.Controls.ImageViewerPanZoomInteractiveMode ());//加载图像.imageViewer。imageUrl =“https://demo.leadtools.com/images/jpeg/cannon.jpg”.imageViewer.zoom (lt.Controls.ControlSizeMode。健康,9,.imageViewer.defaultZoomOrigin);常量exampleButton = document.getElementById(“exampleButton”);exampleButton.addEventListener (“点击”, () => {.timesClicked + +;//运行示例如果(回调)回调(.imageViewer);});
进口{ImageViewer_Example}从“. . / imageview”出口SpyGlassInteractiveMode_Example {viewerExample;构造函数(){.viewerExample =ImageViewer_Example (.run);Run = (viewer) => {viewer.interactiveModes.clearItems ();viewer.interactiveModes.beginUpdate ();//创建望远镜常量spyGlass =lt.Controls.ImageViewerSpyGlassInteractiveMode ();望远镜。写成backgroundColor ="rgba(255,255,0, 0.5)"望远镜。autoItemMode = lt.Controls.ImageViewerAutoItemMode.autoSet;//在绘制时,绘制翻转的查看器spyGlass.drawImage。Add ((sender, e) => {常量rect = e.destinationRectangle;常量CTX = e.context;//画布的宽度和高度常量controlSize = viewer.controlSize;ctx.save ();//取消望远镜的偏移量ctx.translate(矩形。x, -rect.y);//翻转上下文ctx。规模(1,1);ctx。翻译(0,-controlSize.height);//绘制视图viewer.renderRedirect (ctx,lt.Controls.ImageViewerRenderRedirectOptions (), lt.LeadRectD.empty);ctx.restore ();});viewer.interactiveModes.add(望远镜);viewer.interactiveModes.endUpdate ();
出口ImageViewer_Example {//在这个例子中使用的LEADTOOLS ImageViewerimageview =//示例使用的一般状态值timesClicked = 0;构造函数(回调){//设置LEADTOOLS license。用实际的许可证文件替换此文件lt.RasterSupport.setLicenseUri (“https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt”“EVAL”);//在imageViewerDiv元素中创建一个图像查看器常量imageViewerDiv = document.getElementById(“imageViewerDiv”);常量createOptions =lt.Controls.ImageViewerCreateOptions (imageViewerDiv);.imageViewer =lt.Controls.ImageViewer (createOptions);.imageViewer。viewverticalalign = lt. controls . controlalign .center;.imageViewer。viewhizontalalignment = lt.Controls.ControlAlignment.center;.imageViewer。autoCreateCanvas =真正的//增加Pan/Zoom交互模式//点击拖动可平移,CTRL-Click拖动可放大缩小.imageViewer.interactiveModes.add (lt.Controls.ImageViewerPanZoomInteractiveMode ());//加载图像.imageViewer。imageUrl =“https://demo.leadtools.com/images/jpeg/cannon.jpg”.imageViewer.zoom (lt.Controls.ControlSizeMode。健康,9,.imageViewer.defaultZoomOrigin);常量exampleButton = document.getElementById(“exampleButton”);exampleButton.addEventListener (“点击”, () => {.timesClicked + +;//运行示例如果(回调)回调(.imageViewer);});
<!doctype html >< html lang =“en”>控件示例| SpyGlassInteractiveMode




 . /< >头< script src =“https://code.jquery.com/jquery-2.2.4.min.js”诚信=“sha256-BbhdlvQf / xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44 = "crossorigin =“匿名”> < /脚本>< script src =“. . / . . / LT / Leadtools.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Controls.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Engine.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Designers.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Rendering.Javascript.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Annotations.Automation.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Main.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Color.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Core.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.ImageProcessing.Effects.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Document.js”> < /脚本>< script src =“. . / . . / LT / Leadtools.Document.Viewer.js”> < /脚本><时尚>身体{字体类型:“Segoe UI”无衬线;# imageViewerDiv {边框:1px实体#888;宽度:500 px;身高:500 px;background - color: # eee;> < /风格<!——所有的演示文件都被捆绑并附加到窗口——>< script src =“. . / . . / bundle.js”类型=“text / javascript”> < /脚本>> < /头身体< >

按下并拖动图像平移

按住控制键并在图像上拖动或捏用两个手指缩放。< / p >< div ><按钮类型=“按钮”id =“exampleButton”> > < /按钮运行示例< / div >< div id =“imageViewerDiv”> < / div >< div id =“输出”> < / div >身体< / >< >脚本窗口。Onload = () => {常量示例=window.examples.Spyglass.SpyGlassInteractiveMode ();};> < /脚本< / html >

需求< / div >目标平台
帮助版本21.0.2021.7.2< / div ><!--BEGIN Copyright notice--> 188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领德科技有限公司版权所有。<!--END Copyright notice-->
Leadtools。控制装置< / div >