Leadtools.Jpip.Client Namespace : JpipClient Class |
public class JpipClient
'Declaration Public Class JpipClient
'Usage Dim instance As JpipClient
public sealed class JpipClient
function Leadtools.Jpip.Client.JpipClient()
public ref class JpipClient
Use this class to make a request to a JPIP server by filling out the request parameters and calling the BeginGetJpipResponse(String,RequestFields,AsyncCallback,Object) method.
This class support asynchronous calls.
Private Const SERVER_NAME As String = "LEAD JPIP Server - Test Server" Private Const ENUMERATION_SERVER_PORT As Integer = 109 Private Const JPIP_SERVER_PORT As Integer = 108 Private Const LOCAL_IP_ADDRESS As String = "127.0.0.1" Private CLIENT_CACHE_DIRECTORY As String = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000") Private SERVER_CACHE_DIRECTORY As String = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000") Private SERVER_IMAGES_FOLDER As String = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000") Private Const IMAGE_FILE_EXTENSIONS As String = "*.j2k;*.jp2;*.jpx" Private CLIENT_SAVED_FILE_NAME As String = Path.Combine(LEAD_VARS.ImagesDir, "test.bmp") Private _jpipServer As JpipServer Private _imageFileExtensions As List(Of String) Private _listener As HttpListener Public _serverImagesList As List(Of String) = New List(Of String)() Public Sub New() #If LEADTOOLS_V175_OR_LATER Then Leadtools.Examples.Support.SetLicense() #Else Leadtools.Examples.Support.Unlock() #End If ' #If LEADTOOLS_V175_OR_LATER Then _imageFileExtensions = New List(Of String)() _jpipServer = New JpipServer() End Sub Public Sub ClientRequestReceived(ByVal ar As IAsyncResult) Dim context As HttpListenerContext If Nothing Is _listener OrElse (Not _listener.IsListening) Then Return End If Try context = _listener.EndGetContext(ar) Catch Return End Try Try Dim formattedImages As String Dim sendBuffer As Byte() _listener.BeginGetContext(AddressOf ClientRequestReceived, Nothing) formattedImages = GetFormattedServerImagesString() sendBuffer = Encoding.ASCII.GetBytes(formattedImages) context.Response.OutputStream.Write(sendBuffer, 0, sendBuffer.Length) context.Response.Close() Catch e1 As Exception If Not Nothing Is context Then context.Response.Close() End If End Try End Sub Public Function GetFormattedServerImagesString() As String Dim serverImageFile As String Dim formattedServerImagesString As String = String.Empty Dim searchImages As List(Of String) = New List(Of String)() Dim serverImages As List(Of String) = New List(Of String)() For Each extension As String In _imageFileExtensions searchImages.AddRange(Directory.GetFiles(_jpipServer.Configuration.ImagesFolder, extension, SearchOption.AllDirectories)) Next extension For Each file As String In searchImages serverImageFile = file.Replace(_jpipServer.Configuration.ImagesFolder, String.Empty) serverImageFile = serverImageFile.TrimStart("\"c) formattedServerImagesString &= serverImageFile & ";" Next file searchImages.Clear() For Each aliasFolder As KeyValuePair(Of String, String) In _jpipServer.Configuration.AliasFolders If (Not Directory.Exists(aliasFolder.Value)) Then Continue For End If For Each extension As String In _imageFileExtensions searchImages.AddRange(Directory.GetFiles(aliasFolder.Value, extension, SearchOption.AllDirectories)) Next extension For Each imageFile As String In searchImages serverImageFile = imageFile.Replace(aliasFolder.Value, aliasFolder.Key) serverImageFile = serverImageFile.TrimStart("\"c) formattedServerImagesString &= serverImageFile & ";" Next imageFile searchImages.Clear() Next aliasFolder Return formattedServerImagesString.TrimEnd(";"c) End Function Public Sub StartFileEnumerationServer() Try _imageFileExtensions.Clear() _imageFileExtensions.AddRange(IMAGE_FILE_EXTENSIONS.Split(";"c)) If Not _listener Is Nothing Then 'if _listner is already created, then do not create again Return End If _listener = New HttpListener() _listener.Prefixes.Add(String.Format("http://{0}:{1}/", LOCAL_IP_ADDRESS, ENUMERATION_SERVER_PORT)) _listener.Start() _listener.BeginGetContext(AddressOf ClientRequestReceived, Nothing) Catch ex As Exception Debug.Fail("Error in server enumeration: " & Constants.vbLf + ex.Message) End Try End Sub Public Sub StopFileEnumerationServer() Try If Not _listener Is Nothing Then _listener.Stop() End If Catch ex As Exception Debug.Fail("Error in server enumeration: " & Constants.vbLf + ex.Message) End Try End Sub Public Sub GetEnumeratedFiles(ByVal filename As String) Dim request As HttpWebRequest = CType(HttpWebRequest.Create(String.Format("http://{0}:{1}/", LOCAL_IP_ADDRESS, ENUMERATION_SERVER_PORT)), HttpWebRequest) If Not Nothing Is request.Proxy Then request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials End If request.UseDefaultCredentials = True Dim response As HttpWebResponse = CType(request.GetResponse(), HttpWebResponse) Dim receivedStream As System.IO.Stream = response.GetResponseStream() Dim reader As System.IO.StreamReader = New System.IO.StreamReader(receivedStream) Dim read As Char() = New Char(255) {} ' Reads 256 characters at a time. Dim count As Integer = reader.Read(read, 0, 256) Dim imageNames As String = "" Do While count > 0 ' Dumps the 256 characters on a string and displays the string to the console. Dim temp As String = New String(read, 0, count) imageNames &= temp count = reader.Read(read, 0, 256) Loop ' Releases the resources of the response. response.Close() ' Releases the resources of the Stream. reader.Close() Dim imageFileNames As String() = imageNames.Split(";"c) Dim counter As Integer = 0 For Each image As String In imageFileNames counter += 1 Debug.Assert(image.Trim().Length > 0, "There is no image to enumerate") Debug.WriteLine("Image " & counter & ": " & image) _serverImagesList.Add(image) Next image File.WriteAllLines(filename, _serverImagesList.ToArray()) End Sub Public Sub StartJpipServer() If (Not _jpipServer.IsRunning) Then 'Server Settings _jpipServer.Configuration.ServerName = SERVER_NAME _jpipServer.Configuration.IPAddress = LOCAL_IP_ADDRESS _jpipServer.Configuration.Port = JPIP_SERVER_PORT _jpipServer.Configuration.ImagesFolder = SERVER_IMAGES_FOLDER _jpipServer.Configuration.CacheFolder = SERVER_CACHE_DIRECTORY _jpipServer.Configuration.MaxServerBandwidth = _jpipServer.Configuration.MaxServerBandwidth _jpipServer.Configuration.CacheSize = 200 _jpipServer.Configuration.DivideSuperBoxes = True _jpipServer.Configuration.ChunkSize = 512 _jpipServer.Configuration.MaxClientCount = 5 _jpipServer.Configuration.ConnectionIdleTimeout = New TimeSpan(0, 0, 9100) _jpipServer.Configuration.MaxSessionLifetime = New TimeSpan(0, 0, 9900) _jpipServer.Configuration.MaxConnectionBandwidth = _jpipServer.Configuration.MaxConnectionBandwidth 'Communication Settings _jpipServer.Configuration.MaxTransportConnections = 15 _jpipServer.Configuration.HandshakeTimeout = New TimeSpan(0, 0, 9600) _jpipServer.Configuration.RequestTimeout = New TimeSpan(0, 0, 920) _jpipServer.Configuration.ChunkSize = 512 'Images Settings _jpipServer.Configuration.ImageParsingTimeout = New TimeSpan(0, 0, 9180) _jpipServer.Configuration.PartitionBoxSize = 40 _jpipServer.Configuration.DivideSuperBoxes = True 'Logging Settings _jpipServer.Configuration.LogInformation = False _jpipServer.Configuration.LogWarnings = False _jpipServer.Configuration.LogDebug = False _jpipServer.Configuration.LogErrors = False 'Start server and delegates _jpipServer.Start() Debug.Assert(_jpipServer.IsRunning, "Server did not start.") End If End Sub Public Sub StopJpipServer() If _jpipServer.IsRunning Then _jpipServer.Stop() End If End Sub Public Sub SetJpipViewer(ByVal viewer As JpipRasterImageViewer) ' Initialize JPIP viewer viewer.CacheDirectoryName = CLIENT_CACHE_DIRECTORY viewer.PortNumber = JPIP_SERVER_PORT viewer.IPAddress = LOCAL_IP_ADDRESS viewer.PacketSize = 16384 viewer.RequestTimeout = New TimeSpan(0, 1, 0) viewer.ChannelType = JpipChannelTypes.HttpChannel End Sub Public Sub SaveJpipViewerImageToFile(ByVal viewer As JpipRasterImageViewer, ByVal fileName As String) Dim rc As RasterCodecs = New Leadtools.Codecs.RasterCodecs() rc.Save(viewer.Image, fileName, RasterImageFormat.Bmp, 24) End Sub Private Sub OnClientError(ByVal sender As Object, ByVal e As ErrorEventArgs) Debug.WriteLine(e.GetException().Message) End Sub Private Sub OnBytesLoaded(ByVal sender As Object, ByVal e As TotalBytesLoadedEventArgs) Debug.WriteLine(" Total Bytes: " & e.ByteCount.ToString()) End Sub Private Sub FileOpened(ByVal sender As Object, ByVal e As EventArgs) Dim jpipViewer As JpipRasterImageViewer = DirectCast(sender, JpipRasterImageViewer) Dim deleteCacheFilePriorTo As DateTime = New DateTime(2008, 8, 8) Debug.WriteLine(Constants.vbLf & " FullImageSize: " & jpipViewer.FullImageSize.ToString()) Debug.WriteLine(" NumberOfColorComponents: " & jpipViewer.NumberOfColorComponents.ToString()) Debug.WriteLine(" NumberOfResolutions: " & jpipViewer.NumberOfResolutions.ToString()) Debug.WriteLine(" InteractiveMode: " & jpipViewer.InteractiveMode.ToString()) Debug.WriteLine(" PaintProperties: " & jpipViewer.PaintProperties.ToString()) Debug.WriteLine(" Available Resolutions") Dim i As Integer = 0 Do While i < jpipViewer.NumberOfResolutions Debug.WriteLine(" Resolution (" & i.ToString() & ") Size" & jpipViewer.GetResolutionSize(i).ToString()) i += 1 Loop Debug.WriteLine(Constants.vbLf & "Open Image") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) jpipViewer.ZoomIn() Debug.WriteLine(Constants.vbLf & " Zoomed in") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) jpipViewer.ZoomIn() Debug.WriteLine(Constants.vbLf & " Zoomed in") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) jpipViewer.ComponentIndex = 0 Debug.WriteLine("Component Index value set to 1 ") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) jpipViewer.ZoomOut() Debug.WriteLine(Constants.vbLf & " ZoomOut ") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) jpipViewer.ComponentIndex = -1 Debug.WriteLine("Component Index value set to 1 ") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) jpipViewer.Zoom(jpipViewer.GetResolutionSize(2)) Debug.WriteLine(" Resolution size set to 2") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) Debug.WriteLine(" ComponentIndex: " & jpipViewer.ComponentIndex.ToString()) Debug.WriteLine(" CurrentResolutionIndex: " & jpipViewer.CurrentResolutionIndex.ToString()) SaveJpipViewerImageToFile(jpipViewer, CLIENT_SAVED_FILE_NAME) 'Client side function to delete cached files of type LCCACHE File (Not LTCACHE File) prior to given date from CACHE_DIRECTORY Dim count As Integer = jpipViewer.DeleteCacheFiles(deleteCacheFilePriorTo) Debug.WriteLine(count.ToString() & " Cache File Deleted....") If jpipViewer.IsActive Then Debug.WriteLine(" JpipRasterImageViewer.IsActive Test ") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) End If jpipViewer.Close() If jpipViewer.IsActive Then Debug.WriteLine(" JpipRasterImageViewer.IsActive Test (this should not happen becaue no image is loaded at this point") Debug.WriteLine(" CurrentImageSize: " & jpipViewer.CurrentImageSize.ToString()) End If 'Server side StopJpipServer() End Sub Public Sub ClientExample() 'Server side StartJpipServer() 'Client requesting enumerated images from server StartFileEnumerationServer() GetEnumeratedFiles(Path.Combine(LEAD_VARS.ImagesDir, "Client_Enumerated_Images.txt")) StopFileEnumerationServer() 'Client requests an image, copies to local file, then deletes cached files prior to given date from CACHE_DIRECTORY Dim jpipViewer As JpipRasterImageViewer = New JpipRasterImageViewer() SetJpipViewer(jpipViewer) AddHandler jpipViewer.StreamingError, AddressOf OnClientError AddHandler jpipViewer.TotalBytesLoaded, AddressOf OnBytesLoaded AddHandler jpipViewer.FileOpened, AddressOf FileOpened Debug.WriteLine(Constants.vbLf & " Open File: " & _serverImagesList(0)) jpipViewer.Open(_serverImagesList(0)) End Sub Public NotInheritable Class LEAD_VARS Public Const ImagesDir As String = "C:\Users\Public\Documents\LEADTOOLS Images" End Class
private const string SERVER_NAME = "LEAD JPIP Server - Test Server"; private const int ENUMERATION_SERVER_PORT = 109; private const int JPIP_SERVER_PORT = 107; private const string LOCAL_IP_ADDRESS = "127.0.0.1"; private string CLIENT_CACHE_DIRECTORY = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000"); private string SERVER_CACHE_DIRECTORY = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000"); private string SERVER_IMAGES_FOLDER = Path.Combine(LEAD_VARS.ImagesDir, "jpeg2000"); private string IMAGE_FILE_EXTENSIONS = "*.j2k;*.jp2;*.jpx"; private string CLIENT_SAVED_FILE_NAME = Path.Combine(LEAD_VARS.ImagesDir, "test.bmp"); private JpipServer _jpipServer; private List<string> _imageFileExtensions; private HttpListener _listener; public List<string> _serverImagesList = new List<string>(); public JpipClientExample() { _imageFileExtensions = new List<string>(); _jpipServer = new JpipServer(); } public void ClientRequestReceived(IAsyncResult ar) { HttpListenerContext context; if (null == _listener || !_listener.IsListening) { return; } try { context = _listener.EndGetContext(ar); } catch { return; } try { string formattedImages; byte[] sendBuffer; _listener.BeginGetContext(ClientRequestReceived, null); formattedImages = GetFormattedServerImagesString(); sendBuffer = Encoding.ASCII.GetBytes(formattedImages); context.Response.OutputStream.Write(sendBuffer, 0, sendBuffer.Length); context.Response.Close(); } catch (Exception) { if (null != context) { context.Response.Close(); } } } public string GetFormattedServerImagesString() { string serverImageFile; string formattedServerImagesString = string.Empty; List<string> searchImages = new List<string>(); List<string> serverImages = new List<string>(); foreach (string extension in _imageFileExtensions) { searchImages.AddRange(Directory.GetFiles(_jpipServer.Configuration.ImagesFolder, extension, SearchOption.AllDirectories)); } foreach (string file in searchImages) { serverImageFile = file.Replace(_jpipServer.Configuration.ImagesFolder, string.Empty); serverImageFile = serverImageFile.TrimStart('\\'); formattedServerImagesString += serverImageFile + ";"; } searchImages.Clear(); foreach (KeyValuePair<string, string> aliasFolder in _jpipServer.Configuration.AliasFolders) { if (!Directory.Exists(aliasFolder.Value)) { continue; } foreach (string extension in _imageFileExtensions) { searchImages.AddRange(Directory.GetFiles(aliasFolder.Value, extension, SearchOption.AllDirectories)); } foreach (string imageFile in searchImages) { serverImageFile = imageFile.Replace(aliasFolder.Value, aliasFolder.Key); serverImageFile = serverImageFile.TrimStart('\\'); formattedServerImagesString += serverImageFile + ";"; } searchImages.Clear(); } return formattedServerImagesString.TrimEnd(';'); } public void StartFileEnumerationServer() { try { _imageFileExtensions.Clear(); _imageFileExtensions.AddRange(IMAGE_FILE_EXTENSIONS.Split(';')); if (_listener != null)//if _listner is already created, then do not create again return; _listener = new HttpListener ( ) ; _listener.Prefixes.Add ( string.Format ( "http://{0}:{1}/", LOCAL_IP_ADDRESS, ENUMERATION_SERVER_PORT ) ) ; _listener.Start ( ) ; _listener.BeginGetContext ( ClientRequestReceived, null ) ; } catch (Exception ex) { Debug.Fail("Error in server enumeration: \n" + ex.Message); } } public void StopFileEnumerationServer() { try { if (_listener != null) _listener.Stop(); } catch (Exception ex) { Debug.Fail("Error in server enumeration: \n" + ex.Message); } } public void GetEnumeratedFiles(string filename) { HttpWebRequest request = ( HttpWebRequest ) HttpWebRequest.Create ( string.Format ( "http://{0}:{1}/", LOCAL_IP_ADDRESS, ENUMERATION_SERVER_PORT ) ) ; if (null != request.Proxy) { request.Proxy.Credentials = System.Net.CredentialCache.DefaultCredentials; } request.UseDefaultCredentials = true; HttpWebResponse response = (HttpWebResponse)request.GetResponse(); System.IO.Stream receivedStream = response.GetResponseStream(); System.IO.StreamReader reader = new System.IO.StreamReader(receivedStream); Char[] read = new Char[256]; // Reads 256 characters at a time. int count = reader.Read(read, 0, 256); string imageNames = ""; while (count > 0) { // Dumps the 256 characters on a string and displays the string to the console. String temp = new String(read, 0, count); imageNames += temp; count = reader.Read(read, 0, 256); } // Releases the resources of the response. response.Close(); // Releases the resources of the Stream. reader.Close(); string[] imageFileNames = imageNames.Split(';'); int counter = 0; foreach (string image in imageFileNames) { counter++; Debug.Assert(image.Trim().Length > 0, "There is no image to enumerate"); Debug.WriteLine("Image " + counter + ": " + image); _serverImagesList.Add(image); } File.WriteAllLines(filename, _serverImagesList.ToArray()); } public void StartJpipServer() { if (!_jpipServer.IsRunning) { //Server Settings _jpipServer.Configuration.ServerName = SERVER_NAME; _jpipServer.Configuration.IPAddress = LOCAL_IP_ADDRESS; _jpipServer.Configuration.Port = JPIP_SERVER_PORT; _jpipServer.Configuration.ImagesFolder = SERVER_IMAGES_FOLDER; _jpipServer.Configuration.CacheFolder = SERVER_CACHE_DIRECTORY; _jpipServer.Configuration.MaxServerBandwidth = _jpipServer.Configuration.MaxServerBandwidth; _jpipServer.Configuration.CacheSize = 200; _jpipServer.Configuration.DivideSuperBoxes = true; _jpipServer.Configuration.ChunkSize = 512; _jpipServer.Configuration.MaxClientCount = 5; _jpipServer.Configuration.ConnectionIdleTimeout = new TimeSpan(0, 0, 9100); _jpipServer.Configuration.MaxSessionLifetime = new TimeSpan(0, 0, 9900); _jpipServer.Configuration.MaxConnectionBandwidth = _jpipServer.Configuration.MaxConnectionBandwidth; //Communication Settings _jpipServer.Configuration.MaxTransportConnections = 15; _jpipServer.Configuration.HandshakeTimeout = new TimeSpan(0, 0, 9600); _jpipServer.Configuration.RequestTimeout = new TimeSpan(0, 0, 920); _jpipServer.Configuration.ChunkSize = 512; //Images Settings _jpipServer.Configuration.ImageParsingTimeout = new TimeSpan(0, 0, 9180); _jpipServer.Configuration.PartitionBoxSize = 40; _jpipServer.Configuration.DivideSuperBoxes = true; //Logging Settings _jpipServer.Configuration.LogInformation = false; _jpipServer.Configuration.LogWarnings = false; _jpipServer.Configuration.LogDebug = false; _jpipServer.Configuration.LogErrors = false; //Start server and delegates _jpipServer.Start(); Debug.Assert(_jpipServer.IsRunning, "Server did not start."); } } public void StopJpipServer() { if (_jpipServer.IsRunning) _jpipServer.Stop(); } public void SetJpipViewer(JpipRasterImageViewer viewer) { // Initialize JPIP viewer viewer.CacheDirectoryName = CLIENT_CACHE_DIRECTORY; viewer.PortNumber = JPIP_SERVER_PORT; viewer.IPAddress = LOCAL_IP_ADDRESS; viewer.PacketSize = 16384; viewer.RequestTimeout = new TimeSpan(0, 1, 0); viewer.ChannelType = JpipChannelTypes.HttpChannel; } public void SaveJpipViewerImageToFile(JpipRasterImageViewer viewer, string fileName) { RasterCodecs rc = new Leadtools.Codecs.RasterCodecs(); rc.Save(viewer.Image, fileName, RasterImageFormat.Bmp, 24); } private void OnClientError(object sender, ErrorEventArgs e) { Debug.WriteLine(e.GetException().Message); } private void OnBytesLoaded(object sender, TotalBytesLoadedEventArgs e) { Debug.WriteLine(" Total Bytes: " + e.ByteCount.ToString()); } public void ClientExample() { /*Server side*/ StartJpipServer(); /*Client requesting enumerated images from server*/ StartFileEnumerationServer(); GetEnumeratedFiles(Path.Combine(LEAD_VARS.ImagesDir, "Client_Enumerated_Images.txt")); StopFileEnumerationServer(); JpipRasterImageViewer jpipViewer = new JpipRasterImageViewer(); SetJpipViewer(jpipViewer); jpipViewer.StreamingError += OnClientError; jpipViewer.TotalBytesLoaded += OnBytesLoaded; jpipViewer.FileOpened += new EventHandler(jpipViewer_FileOpened); Debug.WriteLine("\n Open File: " + _serverImagesList[0] ); jpipViewer.Open(_serverImagesList[0]); } void jpipViewer_FileOpened(object sender, EventArgs e) { JpipRasterImageViewer jpipViewer = ( JpipRasterImageViewer) sender ; /*Client requests an image, copies to local file, then deletes cached files prior to given date from CACHE_DIRECTORY*/ DateTime deleteCacheFilePriorTo = new DateTime(2008, 8, 8); Debug.WriteLine("\n FullImageSize: " + jpipViewer.FullImageSize.ToString()); Debug.WriteLine(" NumberOfColorComponents: " + jpipViewer.NumberOfColorComponents.ToString()); Debug.WriteLine(" NumberOfResolutions: " + jpipViewer.NumberOfResolutions.ToString()); Debug.WriteLine(" InteractiveMode: " + jpipViewer.InteractiveMode.ToString()); Debug.WriteLine(" PaintProperties: " + jpipViewer.PaintProperties.ToString()); Debug.WriteLine(" Available Resolutions"); for (int i = 0; i < jpipViewer.NumberOfResolutions; i++) { Debug.WriteLine(" Resolution (" + i.ToString() + ") Size" + jpipViewer.GetResolutionSize(i).ToString()); } Debug.WriteLine("\nOpen Image"); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); jpipViewer.ZoomIn(); Debug.WriteLine("\n Zoomed in"); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); jpipViewer.ZoomIn(); Debug.WriteLine("\n Zoomed in"); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); jpipViewer.ComponentIndex = 0; Debug.WriteLine("Component Index value set to 1 "); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); jpipViewer.ZoomOut(); Debug.WriteLine("\n ZoomOut "); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); jpipViewer.ComponentIndex = -1; Debug.WriteLine("Component Index value set to 1 "); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); jpipViewer.Zoom(jpipViewer.GetResolutionSize(2)); Debug.WriteLine(" Resolution size set to 2"); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); Debug.WriteLine(" ComponentIndex: " + jpipViewer.ComponentIndex.ToString()); Debug.WriteLine(" CurrentResolutionIndex: " + jpipViewer.CurrentResolutionIndex.ToString()); SaveJpipViewerImageToFile(jpipViewer, CLIENT_SAVED_FILE_NAME ); /*Client side function to delete cached files of type LCCACHE File (Not LTCACHE File) prior to given date from CACHE_DIRECTORY*/ int count = jpipViewer.DeleteCacheFiles(deleteCacheFilePriorTo); Debug.WriteLine(count.ToString() + " Cache File Deleted...."); if (jpipViewer.IsActive) { Debug.WriteLine(" JpipRasterImageViewer.IsActive Test "); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); } jpipViewer.Close(); if (jpipViewer.IsActive) { Debug.WriteLine(" JpipRasterImageViewer.IsActive Test (this should not happen becaue no image is loaded at this point"); Debug.WriteLine(" CurrentImageSize: " + jpipViewer.CurrentImageSize.ToString()); } /*Server side*/ StopJpipServer(); } static class LEAD_VARS { public const string ImagesDir = @"C:\Users\Public\Documents\LEADTOOLS Images"; }
Target Platforms: Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2