/// <summary> /// Encode image fingerprint to wsq file /// </summary> /// <param name="FileSource">File source (bmp,tiff)</param> /// <param name="FileDest">File wsq</param> /// <param name="comments">Comments in image</param> /// <param name="BitRate">Bit rate</param> public void EnconderFile(String FileSource, String FileDest, String[] comments, double BitRate) { try { switch (Path.GetExtension(FileSource).ToUpper()) { case ".BMP": case ".TIF": break; default: throw new ApplicationException("Error: FileSource extension no supported"); } if (Path.GetExtension(FileDest).ToUpper().Replace(".", "") != "WSQ") { throw new ApplicationException("Error: FileDest extension no supported"); } Bitmap bm = null; System.Drawing.Image img = null; byte[] fileData; Wsqm.cBitmap bitmap; Wsqm.DataOutput data; BitmapSource bitmapSource; switch (Path.GetExtension(FileSource).ToUpper()) { case ".BMP": img = System.Drawing.Image.FromFile(FileSource); bm = new Bitmap(img); Uri myUri = new Uri(FileSource, UriKind.RelativeOrAbsolute); BmpBitmapDecoder decoder2 = new BmpBitmapDecoder(myUri, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); bitmapSource = decoder2.Frames[0]; fileData = GetBytesFromBitmapSource(bitmapSource); bitmap = new Wsqm.cBitmap(fileData, bm.Width, bm.Height, 500, 8, 1); data = new Wsqm.DataOutput(); data.RutaDestino = FileDest; _EncoderWSQ.encode(data, bitmap, BitRate, comments); img.Dispose(); break; case ".TIF": img = System.Drawing.Image.FromFile(FileSource); bm = new Bitmap(img); Stream imageStreamSource = new FileStream(FileSource, FileMode.Open, FileAccess.Read, FileShare.Read); TiffBitmapDecoder decoder = new TiffBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); bitmapSource = decoder.Frames[0]; fileData = GetBytesFromBitmapSource(bitmapSource); bitmap = new Wsqm.cBitmap(fileData, bm.Width, bm.Height, 500, 8, 1); data = new Wsqm.DataOutput(); data.RutaDestino = FileDest; _EncoderWSQ.encode(data, bitmap, BitRate, comments); img.Dispose(); imageStreamSource.Dispose(); break; } } catch (Exception e) { throw (e); } }