Exemple #1
0
 private extern static WinBioErrorCode CaptureSample(
     WinBioSessionHandle sessionHandle,
     WinBioBirPurpose purpose,
     WinBioBirDataFlags flags,
     out int unitId,
     out IntPtr sample,
     out int sampleSize,
     out WinBioRejectDetail rejectDetail);
Exemple #2
0
 public void CaptureSample(WinBioBirPurpose purpose, WinBioBirDataFlags dataFlags)
 {
     int sampleSize;
     WinBioRejectDetail rejectDetail;
     var unitId = WinBio.CaptureSample(_handle, purpose, dataFlags, out sampleSize, out rejectDetail);
     Console.WriteLine("Unit id: {0}", unitId);
     Console.WriteLine("Captured sample size: {0}", sampleSize);
     Console.WriteLine("Reject details: {0}", rejectDetail);
 }
Exemple #3
0
        public void CaptureSample(WinBioBirPurpose purpose, WinBioBirDataFlags dataFlags)
        {
            Bitmap             image;
            WinBioRejectDetail rejectDetail;
            var unitId = WinBio.CaptureSample(_handle, purpose, dataFlags, out rejectDetail, out image);

            Console.WriteLine("Unit id: {0}", unitId);
            Console.WriteLine("Captured sample size: {0}x{1}", image.Width, image.Height);
            Console.WriteLine("Reject details: {0}", rejectDetail);
        }
        public void CaptureSample(WinBioBirPurpose purpose, WinBioBirDataFlags dataFlags)
        {
            int sampleSize;
            WinBioRejectDetail rejectDetail;
            var unitId = WinBio.CaptureSample(_handle, purpose, dataFlags, out sampleSize, out rejectDetail);

            Console.WriteLine("Unit id: {0}", unitId);
            Console.WriteLine("Captured sample size: {0}", sampleSize);
            Console.WriteLine("Reject details: {0}", rejectDetail);
        }
Exemple #5
0
        public static int CaptureSample(
            WinBioSessionHandle sessionHandle,
            WinBioBirPurpose purpose,
            WinBioBirDataFlags flags,
            out int sampleSize,
            out WinBioRejectDetail rejectDetail)
        {
            int    unitId;
            IntPtr pointer;
            var    code = CaptureSample(sessionHandle, purpose, flags, out unitId, out pointer, out sampleSize, out rejectDetail);

            WinBioException.ThrowOnError(code, "WinBioCaptureSample failed");
            //TODO: parse WINBIO_BIR structure at pointer
            Free(pointer);
            return(unitId);
        }
Exemple #6
0
        public static int CaptureSample(
            WinBioSessionHandle sessionHandle,
            WinBioBirPurpose purpose,
            WinBioBirDataFlags flags,
            out WinBioRejectDetail rejectDetail,
            out Bitmap fingerprintImage)
        {
            int    unitId;
            int    sampleSize;
            IntPtr samplePointer;
            var    code = CaptureSample(sessionHandle, purpose, flags, out unitId, out samplePointer, out sampleSize, out rejectDetail);

            WinBioException.ThrowOnError(code, "WinBioCaptureSample failed");
            WinBioBir sample = (WinBioBir)Marshal.PtrToStructure(samplePointer, typeof(WinBioBir));

            if (sample.StandardDataBlock.Size == 0)
            {
                throw new WinBioException("Your fingerprint sensor doesn't support StandardDataBlock");
            }

            IntPtr birHeaderPointer  = samplePointer + sample.HeaderBlock.Offset;
            IntPtr ansiHeaderPointer = samplePointer + sample.StandardDataBlock.Offset;
            IntPtr ansiRecordPointer = ansiHeaderPointer + Marshal.SizeOf(typeof(WinBioBdbAnsi381Header));

            WinBioBdbAnsi381Record ansiRecord = (WinBioBdbAnsi381Record)Marshal.PtrToStructure(
                ansiRecordPointer, typeof(WinBioBdbAnsi381Record));

            Size   imageSize         = new Size(ansiRecord.HorizontalLineLength, ansiRecord.VerticalLineLength);
            IntPtr firstPixelPointer = ansiRecordPointer + Marshal.SizeOf(typeof(WinBioBdbAnsi381Record));

            fingerprintImage = new Bitmap(imageSize.Width, imageSize.Height, 1 * imageSize.Width, PixelFormat.Format8bppIndexed, firstPixelPointer);
            ColorPalette palette = fingerprintImage.Palette;

            for (int i = 0; i <= 255; i++)
            {
                palette.Entries[i] = Color.FromArgb(i, i, i);
            }
            fingerprintImage.Palette = palette;

            Free(samplePointer);

            return(unitId);
        }