Contains data for the ImageProcessing.Progress event.
function lt.ImageProcessingProgressEventArgsextends System.EventArgs
This class is used by the ImageProcessing.Progress event to provide the user with the percentage of the current image processing operation as well as an option to abort.
export class ImageProcessingExample {public imageLoaded: boolean = false;public imageProcessing: lt.ImageProcessing;constructor() {lt.RasterSupport.setLicenseUri("https://demo.leadtools.com/licenses/js/LEADTOOLSEVAL.txt", "EVAL", null);// Initialize the LEADTOOLS Image Processing classthis.imageProcessing = new lt.ImageProcessing();this.imageProcessing.jsFilePath = "../LT/Leadtools.ImageProcessing.Main.js";}public run = (resetId: string, runId: string, progressId: string) => {document.getElementById(resetId).onclick = this.loadImage;document.getElementById(runId).onclick = this.runImageProcessing;document.getElementById(progressId).onclick = this.updateProgress;// hook to the completed and (optionally) progress eventthis.imageProcessing.completed.add(this.imageProcessing_Completed);this.updateProgress();// Load the imagethis.loadImage();}public updateUIState = (): void => {(document.getElementById("resetButton") as HTMLButtonElement).disabled = !this.imageLoaded;(document.getElementById("runButton") as HTMLButtonElement).disabled = !this.imageLoaded;}public loadImage = (): void => {// Load the imageconst imgElement = document.createElement("img");this.imageLoaded = false;let load = () => {imgElement.removeEventListener("load", load, false);// Draw the image on canvasconst myCanvas = document.getElementById("myCanvas") as HTMLCanvasElement;myCanvas.width = imgElement.naturalWidth;myCanvas.height = imgElement.naturalHeight;const context: CanvasRenderingContext2D = myCanvas.getContext("2d");context.drawImage(imgElement, 0, 0);this.imageLoaded = true;this.updateUIState();};imgElement.addEventListener("load", load, false);imgElement.crossOrigin = "Anonymous";imgElement.src = "./Images/ImageViewer.png"; // Or any raster image URLthis.updateUIState();}public runImageProcessing = (): void => {// If we are running, abortif (this.imageProcessing.isRunning) {this.imageProcessing.abort();(document.getElementById("runButton") as HTMLButtonElement).value = "Run";return;}// Run the command// Get the name of the commandconst ipSelect = document.getElementById("ipSelect") as HTMLSelectElement;const index: number = ipSelect.selectedIndex;const command: string = ipSelect.options[index].text;// Get the source canvas image dataconst myCanvas = document.getElementById("myCanvas") as HTMLCanvasElement;const context: CanvasRenderingContext2D = myCanvas.getContext("2d");const imgData: ImageData = context.getImageData(0, 0, myCanvas.width, myCanvas.height);// Set the commandthis.imageProcessing.command = command;// The source image datathis.imageProcessing.imageData = imgData;// Set the argumentslet args: any[][] = this.imageProcessing.arguments;// If this is the fill command, then set the colorif (command == "Fill") {// Set the fill color, dark red in this case, the format is 0x AA RR GG BBargs["color"] = 0xFF7F0000;} else {// No, clear the arguments.Object.getOwnPropertyNames(args).forEach((prop) => {delete args[prop];});}// Run the command(document.getElementById("runButton") as HTMLButtonElement).value = "Abort";this.imageProcessing.run();}public imageProcessing_Progress = (sender, e): void => {// Update the progress labelconst progressLabel = document.getElementById("progressLabel");const percentage: number = parseInt(e.percentage);progressLabel.textContent = percentage + "%";}public imageProcessing_Completed = (sender, e): void => {// Get the result and update the canvasconst imgData: ImageData = e.imageData;const myCanvas = document.getElementById("myCanvas") as HTMLCanvasElement;const context: CanvasRenderingContext2D = myCanvas.getContext("2d");context.putImageData(imgData, 0, 0);(document.getElementById("runButton") as HTMLButtonElement).value = "Run";}public updateProgress = (): void => {if ((document.getElementById("progressCheckBox") as HTMLInputElement).checked) {// Hook to the Progress and Completed eventsif (lt.LTHelper.supportsWebWorker) {this.imageProcessing.progress.add(this.imageProcessing_Progress);}else {alert("Web workers are not supported by this browser. Callbacks will be disabled");}} else {this.imageProcessing.progress.remove(this.imageProcessing_Progress);}}}