CodecsFilterHeartbeatEventArgs Class (original) (raw)

Syntax

public class CodecsFilterHeartbeatEventArgs : EventArgs 

public: ref class CodecsFilterHeartbeatEventArgs : EventArgs

class CodecsFilterHeartbeatEventArgs(EventArgs): 

Example

using Leadtools; using Leadtools.Codecs; using Leadtools.ImageProcessing; using Leadtools.ImageProcessing.Color; using Leadtools.Svg; // Call this method with a very large and complex XLSX document and a timeout in seconds value // Returns true on success and false if aborted // For each page, the image is loaded and passed to the processImage action public bool FilterHeartbeatExample(string inputFileName, int timeoutSeconds, Action<RasterImage, int> processImage) { using (var rasterCodecs = new RasterCodecs()) { // This is the start time, we will reset this value // anytime we start an operation DateTime startOperationTime = DateTime.Now; // Create a heartbeat handler EventHandler<CodecsFilterHeartbeatEventArgs> heartbeatHandler = (sender, e) => { // Abort if it has been more than timeoutSeconds since last operation TimeSpan timeSpan = DateTime.Now - startOperationTime; if (timeSpan.TotalSeconds > timeoutSeconds) { e.Abort = true; } }; // Install the heartbeat handler rasterCodecs.FilterHeartbeat += heartbeatHandler; // First, get information on the file to get the number of pages RasterImageFormat format; int pageCount = 0; // Reset the start time startOperationTime = DateTime.Now; using (CodecsImageInfo imageInfo = rasterCodecs.GetInformation(inputFileName, true)) { // If GetInformationt took more than timeoutSeconds then we aborted the operation // inside heartbeatHandler and GetInformation will return RasterImageFormat.Unknown format = imageInfo.Format; if (format != RasterImageFormat.Unknown) pageCount = imageInfo.TotalPages; } // Did we abort? if (format == RasterImageFormat.Unknown) { // Yes, fail rasterCodecs.FilterHeartbeat -= heartbeatHandler; return false; } // Now load all the pages for (int pageNumber = 1; pageNumber <= pageCount; pageNumber++) { // Reset the start time startOperationTime = DateTime.Now; RasterImage image = rasterCodecs.Load(inputFileName, pageNumber); // If Load took more than timeoutSeconds then we aborted the operation // inside heartbeatHandler and Load will return null // Did we abort? if (image == null) { // Yes, fail rasterCodecs.FilterHeartbeat -= heartbeatHandler; return false; } // Process the image and then delete it processImage(image, pageNumber); image.Dispose(); } rasterCodecs.FilterHeartbeat -= heartbeatHandler; // We successfully loaded and processed all the pages from the file return true; } }

Leadtools.Codecs Assembly

CompactFile(Stream,Stream,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(Stream,Stream,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

CompactFile(string,string,int,int,bool,int,int,bool,int,CodecsSavePageMode,bool,bool) Method

CompactFile(string,string,int,int,bool,long,int,bool,long,CodecsSavePageMode,bool,bool,bool) Method

StartCompress(int,int,int,RasterByteOrder,RasterViewPerspective,int,byte[],int,int,CodecsCompression,CodecsCompressDataCallback) Method