Current clipping rectangle.
Object.defineProperty(ImageViewerRenderEventArgs.prototype, 'clipRectangle',get: function())
clipRectangle: LeadRectD; // read-only
The current clipping rectangle.
import { ImageViewer_Example } from "../ImageViewer";export class ImageViewer_PostRenderExample {private viewerExample;constructor() {this.viewerExample = new ImageViewer_Example(this.run);}private run = (viewer: lt.Controls.ImageViewer) => {// Clear all the images already the viewerviewer.items.clear();// Use vertical view layoutviewer.viewLayout = new lt.Controls.ImageViewerVerticalViewLayout();// Make sure the item size is larger than the image size (thumbnails mode)viewer.itemPadding = lt.Controls.ControlPadding.create(8, 8, 8, 20);viewer.itemBorderThickness = 3;viewer.itemMargin = lt.Controls.ControlPadding.createAll(10);// Add 4 items to the viewerfor (let i = 0; i < 4; i++) {const item: lt.Controls.ImageViewerItem = new lt.Controls.ImageViewerItem();item.url = "https://demo.leadtools.com/images/jpeg/cannon.jpg";item.text = "Item " + i;viewer.items.add(item);}// Render on the viewviewer.postRender.add((sender, e) => {// Rendering the whole viewconst ctx: CanvasRenderingContext2D = e.context;// Blue ellipse at fixed position. This will stay the same and will not scroll or zoomctx.beginPath();ctx.arc(50, 50, 30, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = "rgba(0, 0, 255, .5)";ctx.fill();// Red ellipse at relative position, this will scroll and zoom with the viewctx.save();const t: lt.LeadMatrix = viewer.viewTransform;ctx.transform(t.m11, t.m12, t.m21, t.m22, t.offsetX, t.offsetY);ctx.beginPath();ctx.arc(50, 50, 30, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = "rgba(255, 0, 0, .5)";ctx.fill();ctx.restore();});// Render on each itemviewer.postRenderItem.add((sender, e) => {const item: lt.Controls.ImageViewerItem = e.item;const ctx: CanvasRenderingContext2D = e.context;ctx.save();// Get the bounding rectangle for the imageconst bounds: lt.LeadRectD = lt.LeadRectD.create(0, 0, item.size.width, item.size.height);// Add the image transform to the graphicsconst t: lt.LeadMatrix = viewer.getItemImageTransform(item);ctx.transform(t.m11, t.m12, t.m21, t.m22, t.offsetX, t.offsetY);// Red hilight on right half of each item imagectx.fillStyle = "rgba(255, 0, 0, .5)";ctx.fillRect(bounds.x + (bounds.width / 2), bounds.y, bounds.width / 2, bounds.height);ctx.restore();});}}
export class ImageViewer_Example {// LEADTOOLS ImageViewer to be used with this exampleprotected imageViewer: lt.Controls.ImageViewer = null;// Generic state value used by the examplespublic timesClicked: number = 0;constructor(callback?: (viewer: lt.Controls.ImageViewer) => void) {// Set the LEADTOOLS license. Replace this with your actual license filelt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);// Create an image viewer inside the imageViewerDiv elementconst imageViewerDiv = document.getElementById("imageViewerDiv");const createOptions: lt.Controls.ImageViewerCreateOptions = new lt.Controls.ImageViewerCreateOptions(imageViewerDiv);this.imageViewer = new lt.Controls.ImageViewer(createOptions);this.imageViewer.viewVerticalAlignment = lt.Controls.ControlAlignment.center;this.imageViewer.viewHorizontalAlignment = lt.Controls.ControlAlignment.center;this.imageViewer.autoCreateCanvas = true;// Add Pan/Zoom interactive mode// Click and drag to pan, CTRL-Click and drag to zoom in and outthis.imageViewer.interactiveModes.add(new lt.Controls.ImageViewerPanZoomInteractiveMode());// Load an imagethis.imageViewer.imageUrl = "https://demo.leadtools.com/images/jpeg/cannon.jpg";this.imageViewer.zoom(lt.Controls.ControlSizeMode.fit, .9, this.imageViewer.defaultZoomOrigin);const exampleButton = document.getElementById("exampleButton");exampleButton.addEventListener("click", () => {this.timesClicked++;// Run the exampleif (callback)callback(this.imageViewer);});}}
import { ImageViewer_Example } from "../ImageViewer";export class ImageViewer_PostRenderExample {viewerExample;constructor() {this.viewerExample = new ImageViewer_Example(this.run);}run = (viewer) => {// Clear all the images already the viewerviewer.items.clear();// Use vertical view layoutviewer.viewLayout = new lt.Controls.ImageViewerVerticalViewLayout();// Make sure the item size is larger than the image size (thumbnails mode)viewer.itemPadding = lt.Controls.ControlPadding.create(8, 8, 8, 20);viewer.itemBorderThickness = 3;viewer.itemMargin = lt.Controls.ControlPadding.createAll(10);// Add 4 items to the viewerfor (let i = 0; i < 4; i++) {const item = new lt.Controls.ImageViewerItem();item.url = "https://demo.leadtools.com/images/jpeg/cannon.jpg";item.text = "Item " + i;viewer.items.add(item);}// Render on the viewviewer.postRender.add((sender, e) => {// Rendering the whole viewconst ctx = e.context;// Blue ellipse at fixed position. This will stay the same and will not scroll or zoomctx.beginPath();ctx.arc(50, 50, 30, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = "rgba(0, 0, 255, .5)";ctx.fill();// Red ellipse at relative position, this will scroll and zoom with the viewctx.save();const t = viewer.viewTransform;ctx.transform(t.m11, t.m12, t.m21, t.m22, t.offsetX, t.offsetY);ctx.beginPath();ctx.arc(50, 50, 30, 0, Math.PI * 2);ctx.closePath();ctx.fillStyle = "rgba(255, 0, 0, .5)";ctx.fill();ctx.restore();});// Render on each itemviewer.postRenderItem.add((sender, e) => {const item = e.item;const ctx = e.context;ctx.save();// Get the bounding rectangle for the imageconst bounds = lt.LeadRectD.create(0, 0, item.size.width, item.size.height);// Add the image transform to the graphicsconst t = viewer.getItemImageTransform(item);ctx.transform(t.m11, t.m12, t.m21, t.m22, t.offsetX, t.offsetY);// Red hilight on right half of each item imagectx.fillStyle = "rgba(255, 0, 0, .5)";ctx.fillRect(bounds.x + (bounds.width / 2), bounds.y, bounds.width / 2, bounds.height);ctx.restore();});}}
export class ImageViewer_Example {// LEADTOOLS ImageViewer to be used with this exampleimageViewer = null;// Generic state value used by the examplestimesClicked = 0;constructor(callback) {// Set the LEADTOOLS license. Replace this with your actual license filelt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);// Create an image viewer inside the imageViewerDiv elementconst imageViewerDiv = document.getElementById("imageViewerDiv");const createOptions = new lt.Controls.ImageViewerCreateOptions(imageViewerDiv);this.imageViewer = new lt.Controls.ImageViewer(createOptions);this.imageViewer.viewVerticalAlignment = lt.Controls.ControlAlignment.center;this.imageViewer.viewHorizontalAlignment = lt.Controls.ControlAlignment.center;this.imageViewer.autoCreateCanvas = true;// Add Pan/Zoom interactive mode// Click and drag to pan, CTRL-Click and drag to zoom in and outthis.imageViewer.interactiveModes.add(new lt.Controls.ImageViewerPanZoomInteractiveMode());// Load an imagethis.imageViewer.imageUrl = "https://demo.leadtools.com/images/jpeg/cannon.jpg";this.imageViewer.zoom(lt.Controls.ControlSizeMode.fit, .9, this.imageViewer.defaultZoomOrigin);const exampleButton = document.getElementById("exampleButton");exampleButton.addEventListener("click", () => {this.timesClicked++;// Run the exampleif (callback)callback(this.imageViewer);});}}
<!doctype html><html lang="en"><title>Controls Example | PostRender</title><head><script src="https://code.jquery.com/jquery-2.2.4.min.js"integrity="sha256-BbhdlvQf/xTY9gja0Dq3HiwQF8LaCRTXxZKRutelT44=" crossorigin="anonymous"></script><script src="../../LT/Leadtools.js"></script><script src="../../LT/Leadtools.Controls.js"></script><script src="../../LT/Leadtools.Annotations.Engine.js"></script><script src="../../LT/Leadtools.Annotations.Designers.js"></script><script src="../../LT/Leadtools.Annotations.Rendering.Javascript.js"></script><script src="../../LT/Leadtools.Annotations.Automation.js"></script><script src="../../LT/Leadtools.ImageProcessing.Main.js"></script><script src="../../LT/Leadtools.ImageProcessing.Color.js"></script><script src="../../LT/Leadtools.ImageProcessing.Core.js"></script><script src="../../LT/Leadtools.ImageProcessing.Effects.js"></script><script src="../../LT/Leadtools.Document.js"></script><script src="../../LT/Leadtools.Document.Viewer.js"></script><style>body {font-family: 'Segoe UI', sans-serif;}#imageViewerDiv {border: 1px solid #888;width: 500px;height: 500px;background-color: #eee;}</style><!-- All demo files are bundled and appended to the window --><script src="../../bundle.js" type="text/javascript"></script></head><body><p>Press and drag on the image to pan.</p><p>Hold down the control key and press and drag on the image or pinch with two fingers to zoom in and out.</p><div><button type="button" id="exampleButton">Run Example</button></div><div id="imageViewerDiv"></div><div id="output"></div></body><script>window.onload = () => {const example = new window.examples.ImageViewer.PostRender();};</script></html>
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
