Each of these classes (either through direct implementation or inheritance), access properties that control how the AnnPicture is used in the annotation object.
AnnImageObject:
The AnnImageObject class derives from AnnRectangleObject and adds the Picture property, which is used to fill the object's Bounds.
AnnHotspotObject:
The AnnHotspotObject class derives from AnnImageObject and adds the DefaultPicture property, which can be used to set the default AnnPicture used to fill the object's Bounds.
AnnFreehandHotspotObject:
The AnnFreehandHotspotObject class derives from AnnPolylineObject and adds both the Picture and DefaultPicture properties.
AnnPointObject:
The AnnPointObject class derives from AnnObject and adds both the Picture and DefaultPicture properties.
AnnStampObject:
The AnnStampObject class derives from AnnTextObject and adds the Picture property.
The following examples will create an AnnStampObject with a picture stored in an external PNG file or data:
http://myserver/myimages/file.png:
function createStampFromPngFile(container /*:AnnContainer*/, bounds /*:LeadRectD*/, pngImage /*:string*/) {// Create a new AnnStampObjectvar stampObject = new lt.Annotations.Engine.AnnStampObject();// Set its boundsstampObject.rect = bounds;// Set the picture from the PNGvar picture = new lt.Annotations.Engine.AnnPicture(pngImage);stampObject.picture = picture;// Add the stamp object to containercontainer.children.add(stampObject);}
function createStampFromPngFile(container /*:AnnContainer*/, bounds /*:LeadRectD*/, pngImage /*:string*/) {// Create a new AnnStampObjectvar stampObject = new lt.Annotations.Engine.AnnStampObject();// Set its boundsstampObject.rect = bounds;// Load the picture as a data URLvar getDataUrl = function (img: HTMLImageElement) {var canvas = document.createElement("canvas");canvas.width = img.width;canvas.height = img.height;var ctx = canvas.getContext("2d");ctx.drawImage(img, 0, 0);return canvas.toDataURL();};// Create HTML image to load the PNGvar img = <HTMLImageElement>document.createElement("img");img.addEventListener("load", function (event) {// Render the image into the canvas to get its datavar dataUrl: string = getDataUrl(<HTMLImageElement>event.currentTarget);// Get it into the AnnPicture objectvar picture = lt.Annotations.Engine.AnnPicture.empty;// Set it in a pictureData object (this is the base 64 representation without the data URI format)picture.pictureData = dataUrl.substring("data:image/png;base64,".length);stampObject.picture = picture;// Add the stamp object to the containercontainer.children.add(stampObject);});img.addEventListener("error", function (event) {alert("error loading " + pngImage);});img.src = pngImage;}