コード例 #1
0
 public VariantConverter(OutputType Output, DigitalPersona.Standards.DataType _dataType, DigitalPersona.Standards.InputParameterForRaw _inpRaw, byte[] _inputData, bool _WriteOutputToFile = false)
 {
     try
     {
         cbOutputType      = Output;
         dataType          = _dataType;
         inpRaw            = _inpRaw;
         inputData         = _inputData;
         WriteOutputToFile = _WriteOutputToFile;
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
コード例 #2
0
        public byte[] Convert()
        {
            string ext = null;

            // holds the file extension
            DigitalPersona.Standards.DataType outputType = DigitalPersona.Standards.DataType.DPTemplate;
            switch (cbOutputType)
            {
            case VariantConverter.OutputType.dp_sample:
            {
                // DP Sample
                ext        = "dp_sample";
                outputType = DigitalPersona.Standards.DataType.DpSample;
                break;
            }

            case VariantConverter.OutputType.dp_tmpl:
            {
                // DP Template
                ext        = "dp_tmpl";
                outputType = DigitalPersona.Standards.DataType.DPTemplate;
                break;
            }

            case VariantConverter.OutputType.dp_ftr:
            {
                // DP Feature Set
                ext        = "dp_ftr";
                outputType = DigitalPersona.Standards.DataType.DPFeatureSet;
                break;
            }

            case VariantConverter.OutputType.ansi_sample:
            {
                // ANSI Sample
                ext        = "ansi_sample";
                outputType = DigitalPersona.Standards.DataType.ANSISample;
                break;
            }

            case VariantConverter.OutputType.ansi_ftr:
            {
                // ANSI Feature Set
                ext        = "ansi_ftr";
                outputType = DigitalPersona.Standards.DataType.ANSIFeatureSet;
                break;
            }

            //case VariantConverter.OutputType.ansi:
            //    {
            //        // ANSI Template
            //        ext = "ansi_tmpl";
            //        outputType = DigitalPersona.Standards.DataType.ANSITemplate;
            //        break;
            //    }

            case VariantConverter.OutputType.ansi_tmplX:
            {
                // ANSI Template Extended
                ext        = "ansi_tmplX";
                outputType = DigitalPersona.Standards.DataType.ANSITemplateWithExtendedData;
                break;
            }

            case VariantConverter.OutputType.iso_sample:
            {
                // ISO Sample
                ext        = "iso_sample";
                outputType = DigitalPersona.Standards.DataType.ISOSample;
                break;
            }

            case VariantConverter.OutputType.iso_ftr:
            {
                // ISO Feature Set
                ext        = "iso_ftr";
                outputType = DigitalPersona.Standards.DataType.ISOFeatureSet;
                break;
            }

            case VariantConverter.OutputType.iso_tmpl:
            {
                // ISO Template
                ext        = "iso_tmpl";
                outputType = DigitalPersona.Standards.DataType.ISOTemplate;
                break;
            }

            case VariantConverter.OutputType.iso_tmplX:
            {
                // ISO Template Extended
                ext        = "iso_tmplX";
                outputType = DigitalPersona.Standards.DataType.ISOTemplateWithExtendedData;
                break;
            }
            }

            byte[] dataToFile = null;

            try
            {
                if (dataType == DigitalPersona.Standards.DataType.RawSample)
                {
                    if (outputType != DigitalPersona.Standards.DataType.ISOSample && outputType != DigitalPersona.Standards.DataType.ANSISample && outputType != DigitalPersona.Standards.DataType.DpSample)
                    {
                        MessageBox.Show("You can only convert a raw sample to another sample format.  Please select an appropriate output type.");
                        return(null);
                    }
                    Object outParameter = null;

                    dataToFile = DigitalPersona.Standards.Converter.Convert(inputData, dataType, inpRaw, outputType, outParameter);
                }
                else
                {
                    dataToFile = DigitalPersona.Standards.Converter.Convert(inputData, dataType, outputType);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }

            if (WriteOutputToFile)
            {
                SaveFileDialog dlgSave = new SaveFileDialog();

                dlgSave.Filter = "Biometric File| *." + ext;
                dlgSave.Title  = "Save Biometric Data";

                if (dlgSave.ShowDialog() == System.Windows.Forms.DialogResult.Cancel)
                {
                    return(null);
                }

                String fileName = dlgSave.FileName;

                FileStream   fsOut  = new FileStream(fileName, FileMode.Create, FileAccess.Write);
                BinaryWriter writer = new BinaryWriter(fsOut);
                writer.Write(dataToFile);
                writer.Close();
                fsOut.Close();
                MessageBox.Show("Successfully Saved File " + dlgSave.FileName);
            }

            return(dataToFile);
        }