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

redirectCanvas财产

总结< / div >

外部HTML5画布元素,可用于重定向间谍玻璃渲染。

语法< / div >< div id ="mainSourceContainerSyntax">
打印稿< / div >
JavaScript< / div >< / div >
Object.defineProperty (ImageViewerSpyGlassInteractiveMode.prototype“redirectCanvas”得到:函数(),设置:函数(值)
redirectCanvas: HTMLCanvasElement;

属性值

外部帆布这可以用来重新定向间谍玻璃渲染。默认值为

讲话< / div >

ImageViewerSpyGlassInteractiveMode支持将渲染输出重定向到外部帆布而不是查看器中鼠标下方的区域。当此值设置为有效的帆布在页面上,交互模式将使用此画布作为间谍玻璃渲染的目标,而不是创建内部实例并在图像查看器上渲染玻璃。

例子< / div >

这个例子添加了一个放大镜将绘制的新画布。当拖动时,放大镜将绘制查看器的内容,并在其上附加文本。

RedirectCanvas.ts< / div >
ImageViewer.ts< / div >
RedirectCanvas.js< / div >
ImageViewer.js< / div >
RedirectCanvas.html< / div >< / div >< div id ="GenericContainerEntry2370" class="GenericContainerEntry">
进口{ImageViewer_Example}从“. . / imageview”出口SpyGlassInteractiveMode_RedirectCanvasExample {私人viewerExample;构造函数() {.viewerExample =ImageViewer_Example (.run);私人run =(查看器:lt.Controls.ImageViewer) => {常量output = document.getElementById(“输出”);//重定向画布的宽度和高度常量canvasWidth:数量= 250;常量canvasHeight:数量= 250;//创建重定向画布常量redirectCanvas = document.createElement(“画布”) HTMLCanvasElement;redirectCanvas.style.border =1px纯黑redirectCanvas。宽度= canvasWidth;redirectCanvas。height = canvasHeight;//创建SpyGlass模式常量模式:lt.Controls.ImageViewerSpyGlassInteractiveMode =lt.Controls.ImageViewerSpyGlassInteractiveMode ();mode.workCompleted。Add ((sender, e) => {如果(mode.redirectCanvas) {//在重定向的画布上绘制后清除常量ctx: CanvasRenderingContext2D = mode.redirectCanvas.getContext(“二维”);ctx。clearRect(0,0, mode.redirectCanvas。宽度,mode.redirectCanvas.height)});模式。铅大小。创建(canvasWidth canvasHeight);模式。redirectCanvas = redirectCanvas;模式。写成backgroundColor =“黄色”模式。crosshairColor =“红色”mode.drawImage。Add ((sender, e) => {常量rect: lt.LeadRectD = e.destinationRectangle;常量ctx: CanvasRenderingContext2D = e.context;ctx.save ();//取消望远镜的偏移量ctx.translate(矩形。x, -rect.y);//我们可以在这里做任何事情。例如,ImageViewerMagnifyGlassInteractiveMode会放大。//我们将在图像上绘制额外的文本。//剪辑到ImageViewer(可选)常量bounds: lt.LeadRectD = viewer.getViewBounds(真正的);ctx.beginPath ();ctx.rect(界限。x,界限。y,界限。宽度,bounds.height);ctx.closePath ();ctx.clip ();//绘制视图viewer.renderRedirect (ctx,lt.Controls.ImageViewerRenderRedirectOptions (), lt.LeadRectD.empty);//在顶部绘制一些文本ctx。fillStyle =“白色”ctx。strokeStyle =“白色”ctx。字体="75px Times New Roman"ctx.fillText (“望远镜”,范围。X +(边界。宽度/ 2)- 100,边界。Y +(边界。身高/ 2));ctx.restore ();});//添加一个切换按钮常量button = document.createElement(“按钮”);按钮。Onclick = () => {如果(mode.redirectCanvas)模式。redirectCanvas =其他的模式。redirectCanvas = redirectCanvas;updateButtonText ();output.appendChild(按钮);常量updateButtonText = () => {按钮。在nerHTML = !mode.redirectCanvas ?“重定向渲染”“在查看器上渲染”updateButtonText ();//添加模式到查看器viewer.interactiveModes.clear ();viewer.interactiveModes.add(模式);//为形状添加一个选择元素常量shapeSelect = document.createElement(“选择”);output.appendChild (shapeSelect);让钥匙:字符串[] = Object.keys(lt.Controls.ImageViewerSpyGlassShape);keys.forEach((key) => {如果(!isNaN(Number(lt.Controls.ImageViewerSpyGlassShape[key])) && key !==“__enum”) {常量option = document.createElement(“选项”);选择。在nerHTML = key;shapeSelect.appendChild(选项);});shapeSelect。selectedIndex = lt.Controls.ImageViewerSpyGlassShape.ellipse;模式。shape = lt.Controls.ImageViewerSpyGlassShape.ellipse;shapeSelect.addEventListener (“改变”, () => {模式。shape = shapeSelect.selectedIndex;});//添加画布常量container = document.createElement(" div ");container.appendChild (redirectCanvas);output.appendChild(容器);
出口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_RedirectCanvasExample {viewerExample;构造函数(){.viewerExample =ImageViewer_Example (.run);Run = (viewer) => {常量output = document.getElementById(“输出”);//重定向画布的宽度和高度常量canvasWidth = 250;常量canvasHeight = 250;//创建重定向画布常量redirectCanvas = document.createElement(“画布”);redirectCanvas.style.border =1px纯黑redirectCanvas。宽度= canvasWidth;redirectCanvas。height = canvasHeight;//创建SpyGlass模式常量模式=lt.Controls.ImageViewerSpyGlassInteractiveMode ();mode.workCompleted。Add ((sender, e) => {如果(mode.redirectCanvas) {//在重定向的画布上绘制后清除常量ctx = mode.redirectCanvas.getContext(“二维”);ctx。clearRect(0,0, mode.redirectCanvas。宽度,mode.redirectCanvas.height)});模式。铅大小。创建(canvasWidth canvasHeight);模式。redirectCanvas = redirectCanvas;模式。写成backgroundColor =“黄色”模式。crosshairColor =“红色”mode.drawImage。Add ((sender, e) => {常量rect = e.destinationRectangle;常量CTX = e.context;ctx.save ();//取消望远镜的偏移量ctx.translate(矩形。x, -rect.y);//我们可以在这里做任何事情。例如,ImageViewerMagnifyGlassInteractiveMode会放大。//我们将在图像上绘制额外的文本。//剪辑到ImageViewer(可选)常量bounds = viewer.getViewBounds(真正的);ctx.beginPath ();ctx.rect(界限。x,界限。y,界限。宽度,bounds.height);ctx.closePath ();ctx.clip ();//绘制视图viewer.renderRedirect (ctx,lt.Controls.ImageViewerRenderRedirectOptions (), lt.LeadRectD.empty);//在顶部绘制一些文本ctx。fillStyle =“白色”ctx。strokeStyle =“白色”ctx。字体="75px Times New Roman"ctx.fillText (“望远镜”,范围。X +(边界。宽度/ 2)- 100,边界。Y +(边界。身高/ 2));ctx.restore ();});//添加一个切换按钮常量button = document.createElement(“按钮”);按钮。Onclick = () => {如果(mode.redirectCanvas)模式。redirectCanvas =其他的模式。redirectCanvas = redirectCanvas;updateButtonText ();output.appendChild(按钮);常量updateButtonText = () => {按钮。在nerHTML = !mode.redirectCanvas ?“重定向渲染”“在查看器上渲染”updateButtonText ();//添加模式到查看器viewer.interactiveModes.clear ();viewer.interactiveModes.add(模式);//为形状添加一个选择元素常量shapeSelect = document.createElement(“选择”);output.appendChild (shapeSelect);let keys = Object.keys(lt.Controls.ImageViewerSpyGlassShape);keys.forEach((key) => {如果(!isNaN(Number(lt.Controls.ImageViewerSpyGlassShape[key])) && key !==“__enum”) {常量option = document.createElement(“选项”);选择。在nerHTML = key;shapeSelect.appendChild(选项);});shapeSelect。selectedIndex = lt.Controls.ImageViewerSpyGlassShape.ellipse;模式。shape = lt.Controls.ImageViewerSpyGlassShape.ellipse;shapeSelect.addEventListener (“改变”, () => {模式。shape = shapeSelect.selectedIndex;});//添加画布常量container = document.createElement(" div ");container.appendChild (redirectCanvas);output.appendChild(容器);
出口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”>控件示例| RedirectCanvas




 . RedirectCanvas< >头< 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.ImageViewer.RedirectCanvas ();};> < /脚本< / html >

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