在这个话题▼< / div >< div id ="inThisTopicDialog" class="hide">

loadPicture事件

总结< / div >

当图片对象已完成加载其源图像时发生。

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

AnnLoadPictureEventArgs

在LEADTOOLS Annotation框架中,直到渲染时才加载图片对象中的源图像。例如,当您首次呈现包含图片的注释对象时,例如AnnHotspotObjectAnnPointObject,框架将加载图像AnnPicture。源在后台。当图像加载时,框架将使用一个占位符矩形来呈现对象的位置和大小。当图像完全加载后,框架将触发LoadPicture事件并呈现新图像而不是占位符。

LoadingPictureStrokeLoadingPictureFill是用于描边和填充占位符矩形的对象。默认值是黑色背景上的白色描边。

LoadPicture事件包含有关已完成加载的图片的数据,例如图片对象本身和所有者AnnObject。此外,事件数据包含错误属性,在发生错误时将填充该属性。

在后台加载图像是开始绘制注释对象的一种高效且简单的方法,而无需等待浏览器中所有可用的资源。如果对象包含服务器机器上带有源URL的图片,并且需要几秒钟才能下载,则尤其如此。

例子< / div >

本例将从远程服务器中的资源创建图片,并将其与热点注释对象一起使用。然后,它将在加载图像时使用自动化开始绘制对象。

LoadPicture.ts< / div >
EngineHelper.ts< / div >
LoadPicture.js< / div >
EngineHelper.js< / div >
LoadPicture.html< / div >< / div >< div id ="GenericContainerEntry3482" class="GenericContainerEntry">
进口{EngineHelper} from“. . /工具/ EngineHelper”;出口AnnRenderingEngine_LoadPicture {构造函数() {常量辅助=EngineHelper ();helper.run (.loadPicture);}loadPicture =(自动化:lt.Annotations.Automation.AnnAutomation) => {//获取当前渲染引擎let renderingEngine: lt.Annotations.Engine.AnnRenderingEngine = automation.automationControl.renderingEngine;//将默认的加载对象占位符设置为绿色边框和半透明背景常量lt.Annotations.Engine.AnnStroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create (“绿色”),lt.LeadLengthD.create (1));常量fill: lt.Annotations.Engine.AnnBrush = lt.Annotations.Engine.AnnSolidColorBrush.create("rgba(0,0,0,0.5)");renderingEngine。loadingPictureStroke =笔画;renderingEngine。loadingpictufill = fill;//挂钩到LoadPicture事件renderingEngine。add_loadPicture((sender, e) => {//是AnnLoadPictureEventArgs//检查是否发生错误如果(e.error ! =) {//显示错误信息让STR = e.error.message;str + =“\ nSource:“+ e.picture.source;str + ="\所有者对象:"+ e.annObject.friendlyName;警报(str);}//图片加载后重新渲染容器automation.invalidate (lt.LeadRectD.empty);});//使用来自远程服务器的图片创建新的AnnHotspotObject常量英寸:数量= 720;常量热点:lt.Annotations.Engine.AnnHotspotObject =lt.Annotations.Engine.AnnHotspotObject ();//添加位置为1,1英寸,尺寸为4,2英寸的对象热点。rect = lt.LeadRectD。创建(1 *英寸,1 *英寸,4 *英寸,2 *英寸);//设置图片常量图片:lt.Annotations.Engine.AnnPicture =lt.Annotations.Engine.AnnPicture (”“);图片。源=“//m.ahtuanjie.com/images/page_graphics/leadlogo.png”;//注意:CORS会导致toDataUrl失败//或者使用本地资源/ /图片。源="Resources/leadlogo.png";热点。图片=图片;//添加到容器中常量容器:lt.Annotations.Engine.AnnContainer = automation.container;container.children.add(热点);//渲染容器automation.invalidate (lt.LeadRectD.empty);}}
出口EngineHelper {//自动化对象受保护的_automation: lt.Annotations.Automation.AnnAutomation =;//图像查看器受保护的lt.Controls.ImageViewer =;构造函数() {//设置LEADTOOLS license。将其替换为实际的许可文件lt.RasterSupport.setLicenseUri (“https://demo.leadtools.com/licenses/v200/LEADTOOLSEVAL.txt”,“EVAL”,);}公共运行(回调?:(自动化:lt.注释自动化。AnnAutomation,查看器:lt.Controls.ImageViewer) =>无效):无效//创建查看器常量imageviewdiv = document.getElementById(“imageViewerDiv”);常量创建选项:lt.Controls.ImageViewerCreateOptions =lt.Controls.ImageViewerCreateOptions (imageViewerDiv);常量查看器:lt.Controls.ImageViewer =lt.Controls.ImageViewer (createOptions);查看器。autoCreateCanvas =真正的;._viewer =查看器;// PanZoom交互模式常量panZoom: lt.Controls.ImageViewerPanZoomInteractiveMode =lt.Controls.ImageViewerPanZoomInteractiveMode ();//创建一个与LEADTOOLS ImageViewer一起工作的自动化控件对象的实例常量imageViewerAutomationControl: lt.188金宝搏beat体育官网Demos.Annotations.ImageViewerAutomationControl =lt.188金宝搏beat体育官网Demos.Annotations.ImageViewerAutomationControl ();//附加图像查看器imageViewerAutomationControl。imageViewer =查看器;//设置图像查看器的交互模式常量automationInteractiveMode: lt.188金宝搏beat体育官网Demos.Annotations.AutomationInteractiveMode =lt.188金宝搏beat体育官网Demos.Annotations.AutomationInteractiveMode ();automationInteractiveMode。automationControl = imageViewerAutomationControl;//设置图片的URL查看器。imageUrl =“http://demo.leadtools.com/images/png/pngimage.png”;//使用HTML5渲染引擎创建和设置自动化管理器常量renderingEngine: lt.Annotations.Rendering。AnnHtml5RenderingEngine =lt.Annotations.Rendering.AnnHtml5RenderingEngine ();常量manager: lt.Annotations.Automation.AnnAutomationManager = lt.Annotations.Automation.AnnAutomationManager.create(renderingEngine);//创建默认的自动化对象manager.createDefaultObjects ();//将对象添加到objectsselect元素常量currentobjecdselect = document.getElementById(“currentObjectIdSelect”)作为HTMLSelectElement;//添加PanZoom选项currentObjectIdSelect.options [currentObjectIdSelect.options。长度]=选项(“锅/缩放”lt.Annotations.Engine.AnnObject.none.toString ());常量automationObjCount:数量= manager.objects.count;(设I = 0;i < automationObjCount;我+ +){//获取对象常量automationobject: lt.Annotations.Automation.AnnAutomationObject = manager.objects.item(i);//将其名称添加到select元素中常量名称:字符串= automationObj.name;常量id:字符串= automationObj.id.toString ();currentObjectIdSelect.options [currentObjectIdSelect.options。长度]=选项(名称、id);}//钩子到它的change事件currentObjectIdSelect.addEventListener (“改变”, () = bb0 {//获取对象ID常量id:数量=方法(currentObjectIdSelect.options [currentObjectIdSelect.selectedIndex] value);//设置为管理器中的当前对象经理。currentobjid = id;//如果这是“平移/缩放”选项,则返回到平移缩放,否则,设置我们的自动化控制如果(id == lt.Annotations.Engine.AnnObject.none) {viewer.defaultInteractiveMode = panZoom;}其他的viewer.defaultInteractiveMode = automationInteractiveMode;}});//当当前对象ID改变时,我们需要更新select经理。add_currentobjecdchanged ((sender, e) => {常量currentObjectId:数量= manager.currentObjectId;(设I = 0;i < currentobjecdselect .options.length;我+ +){常量id:数量[我]=方法(currentObjectIdSelect.options value);如果(id === currentObjectId) {currentObjectIdSelect。selecteindex = 1;打破;}}});//默认为平移缩放viewer.defaultInteractiveMode = panZoom;//设置自动化(也会创建容器)常量自动化:lt. annotation . automation . annautomation =lt.Annotations.Automation。AnnAutomation(经理,imageViewerAutomationControl);._automation =自动化;//添加处理程序,当图像大小改变时更新容器大小viewer.itemChanged。Add ((sender, e) => {常量容器:lt.Annotations.Engine.AnnContainer = automation.container;容器。size = container.mapper.sizeToContainerCoordinates(viewer.imageSize);//为新图像创建新的画布数据提供者常量canvasDataProvider: lt.188金宝搏beat体育官网Demos.Annotations.CanvasDataProvider =lt.188金宝搏beat体育官网Demos.Annotations.CanvasDataProvider (viewer.activeItem.canvas);imageViewerAutomationControl。automationDataProvider = canvasDataProvider;});//将此自动化设置为活动自动化._automation。活跃的=真正的;常量exampleButton = document.getElementById(“exampleButton”);exampleButton。Onclick = () => {如果(回调)回调(._automation,._viewer);}}}
进口{EngineHelper} from“. . /工具/ EngineHelper”;出口AnnRenderingEngine_LoadPicture {构造函数(){常量辅助=EngineHelper ();helper.run (.loadPicture);}loadPicture =(自动化)=> {//获取当前渲染引擎let renderingEngine = automation.automationControl.renderingEngine;//将默认的加载对象占位符设置为绿色边框和半透明背景常量stroke = lt.Annotations.Engine.AnnStroke.create(lt.Annotations.Engine.AnnSolidColorBrush.create (“绿色”),lt.LeadLengthD.create (1));常量fill = lt.Annotations.Engine.AnnSolidColorBrush.create("rgba(0,0,0,0.5)");renderingEngine。loadingPictureStroke =笔画;renderingEngine。loadingpictufill = fill;//挂钩到LoadPicture事件renderingEngine。add_loadPicture((sender, e) => {//是AnnLoadPictureEventArgs//检查是否发生错误如果(e.error ! =) {//显示错误信息让STR = e.error.message;str + =“\ nSource:“+ e.picture.source;str + ="\所有者对象:"+ e.annObject.friendlyName;警报(str);}//图片加载后重新渲染容器automation.invalidate (lt.LeadRectD.empty);});//使用来自远程服务器的图片创建新的AnnHotspotObject常量英寸= 720;常量热点=lt.Annotations.Engine.AnnHotspotObject ();//添加位置为1,1英寸,尺寸为4,2英寸的对象热点。rect = lt.LeadRectD。创建(1 *英寸,1 *英寸,4 *英寸,2 *英寸);//设置图片常量照片=lt.Annotations.Engine.AnnPicture (”“);图片。源=“//m.ahtuanjie.com/images/page_graphics/leadlogo.png”;//注意:CORS会导致toDataUrl失败//或者使用本地资源/ /图片。源="Resources/leadlogo.png";热点。图片=图片;//添加到容器中常量Container = automation.container;container.children.add(热点);//渲染容器automation.invalidate (lt.LeadRectD.empty);}}
出口EngineHelper {//自动化对象_automation =;//图像查看器_view =;构造函数(){//设置LEADTOOLS license。将其替换为实际的许可文件lt.RasterSupport.setLicenseUri (“https://demo.leadtools.com/licenses/v200/LEADTOOLSEVAL.txt”,“EVAL”,);}运行(回调){//创建查看器常量imageviewdiv = document.getElementById(“imageViewerDiv”);常量createOptions =lt.Controls.ImageViewerCreateOptions (imageViewerDiv);常量观众=lt.Controls.ImageViewer (createOptions);查看器。autoCreateCanvas =真正的;._viewer =查看器;// PanZoom交互模式常量panZoom =lt.Controls.ImageViewerPanZoomInteractiveMode ();//创建一个与LEADTOOLS ImageViewer一起工作的自动化控件对象的实例常量imageViewerAutomationControl =lt.188金宝搏beat体育官网Demos.Annotations.ImageViewerAutomationControl ();//附加图像查看器imageViewerAutomationControl。imageViewer =查看器;//设置图像查看器的交互模式常量automationInteractiveMode =lt.188金宝搏beat体育官网Demos.Annotations.AutomationInteractiveMode ();automationInteractiveMode。automationControl = imageViewerAutomationControl;//设置图片的URL查看器。imageUrl =“http://demo.leadtools.com/images/png/pngimage.png”;//使用HTML5渲染引擎创建和设置自动化管理器常量renderingEngine =lt.Annotations.Rendering.AnnHtml5RenderingEngine ();常量manager = lt.Annotations.Automation.AnnAutomationManager.create(renderingEngine);//创建默认的自动化对象manager.createDefaultObjects ();//将对象添加到objectsselect元素常量currentobjecdselect = document.getElementById(“currentObjectIdSelect”);//添加PanZoom选项currentObjectIdSelect.options [currentObjectIdSelect.options。长度]=选项(“锅/缩放”lt.Annotations.Engine.AnnObject.none.toString ());常量automationObjCount = manager.objects.count;(设I = 0;i < automationObjCount;我+ +){//获取对象常量automationObj = manager.objects.item(i);//将其名称添加到select元素中常量name = automationObj.name;常量id = automationObj.id.toString();currentObjectIdSelect.options [currentObjectIdSelect.options。长度]=选项(名称、id);}//钩子到它的change事件currentObjectIdSelect.addEventListener (“改变”, () = bb0 {//获取对象ID常量id = parseInt(currentObjectIdSelect.options[currentObjectIdSelect.selectedIndex].value);//设置为管理器中的当前对象经理。currentobjid = id;//如果这是“平移/缩放”选项,则返回到平移缩放,否则,设置我们的自动化控制如果(id == lt.Annotations.Engine.AnnObject.none) {viewer.defaultInteractiveMode = panZoom;}其他的viewer.defaultInteractiveMode = automationInteractiveMode;}});//当当前对象ID改变时,我们需要更新select经理。add_currentobjecdchanged ((sender, e) => {常量currentObjectId = manager.currentObjectId;(设I = 0;i < currentobjecdselect .options.length;我+ +){常量id = parseInt(currentobjecdselect .options[i].value);如果(id === currentObjectId) {currentObjectIdSelect。selecteindex = 1;打破;}}});//默认为平移缩放viewer.defaultInteractiveMode = panZoom;//设置自动化(也会创建容器)常量自动化=lt.Annotations.Automation。AnnAutomation(经理,imageViewerAutomationControl);._automation =自动化;//添加处理程序,当图像大小改变时更新容器大小viewer.itemChanged。Add ((sender, e) => {常量Container = automation.container;容器。size = container.mapper.sizeToContainerCoordinates(viewer.imageSize);//为新图像创建新的画布数据提供者常量canvasDataProvider =lt.188金宝搏beat体育官网Demos.Annotations.CanvasDataProvider (viewer.activeItem.canvas);imageViewerAutomationControl。automationDataProvider = canvasDataProvider;});//将此自动化设置为活动自动化._automation。活跃的=真正的;常量exampleButton = document.getElementById(“exampleButton”);exampleButton。Onclick = () => {如果(回调)回调(._automation,._viewer);}}}
< !doctype html >< html lang =“en”>AnnRenderingEngine示例| LoadPicture




< >头< 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.Annotations.BatesStamp.js”> < /脚本>< script src =“. . / LT / Leadt188金宝搏beat体育官网ools.Demos.js”> < /脚本>< script src =“. . / LT / Leadt188金宝搏beat体育官网ools.Demos.Annotations.js”> < /脚本><时尚># imageViewerDiv {边框:1px实线#000000;宽度:800 px;身高:800 px;background - color: # 7 f7f7f;}> < /风格< !——所有演示文件被捆绑并附加到窗口——>< script src =“. . / . . / bundle.js”类型=“text / javascript”> < /脚本>> < /头身体< >

平移/缩放或注释模式。在注释模式下,绘制对象或编辑它们。

< div ><选择id =“currentObjectIdSelect”> < /选择>< / div >< div >< input type =“按钮”id =“exampleButton”值=“例子”/><标签id =“exampleLabel”/>< / div >< div id =“imageViewerDiv”/>身体< / >< >脚本窗口。Onload = () =>window.examples.AnnRenderingEngine.LoadPicture ();> < /脚本< / html >
事件数据< / div >
参数 类型 描述
发送方 var 事件的来源。
e AnnLoadPictureEventArgs 事件数据。
需求< / div >目标平台
帮助版本21.0.2021.6.30< / div >< !--BEGIN Copyright notice--> 188金宝搏的网址客服|支持|联系我们|知识产权公告
©1991 - 2021领先科技有限公司版权所有。< !--END Copyright notice-->
Leadtools.Annotations.Engine组装< / div >