コード例 #1
0
    public JObject face_register_using_aip(string userid, Bitmap bmap)
    {
        //client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);
        //client.Timeout = 6000;

        string image = bitmap2BASE64(bmap);

        var imageType = "BASE64";

        var groupId = "group1";

        var options = new Dictionary <string, object> {
            { "action_type", "replace" }
        };

        try
        {
            renew();
            return(client.UserAdd(image, imageType, groupId, userid, options));
        }
        catch (Exception ex)
        {
            return((JObject)ex.ToString());
        }
    }
コード例 #2
0
        /// <summary>
        /// 点击注册
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btRegist_Click(object sender, EventArgs e)
        {
            // 设置APPID/AK/SK
            var APP_ID     = "14976181";
            var API_KEY    = "v6gNCmUGTHzdkUVP0XI7ksaG";
            var SECRET_KEY = "YPqgbFV9T0qmEGbnvMKYGPHeGw5exW5F";

            var client = new Baidu.Aip.Face.Face(API_KEY, SECRET_KEY);

            client.Timeout = 60000;  // 修改超时时间
                                     //输入值检测返回值
            bool res = true;

            label9.Text       = "带*为必填项";
            label9.ForeColor  = Color.Black;
            label10.ForeColor = Color.Black;
            label11.ForeColor = Color.Black;
            label12.ForeColor = Color.Black;
            label13.ForeColor = Color.Black;
            label14.ForeColor = Color.Black;
            res = CheckInput();
            if (res == false)
            {
                MySqlConnection myconn = new MySqlConnection("Host=" + host +
                                                             ";Database=" + database +
                                                             ";Username="******";Password="******";");
                FileStream fs         = File.OpenRead(tbPhotoPath.Text); //OpenRead
                int        filelength = 0;
                filelength = (int)fs.Length;                             //获得文件长度 
                Byte[] imgData64 = new Byte[filelength];                 //建立一个字节数组 
                fs.Read(imgData64, 0, filelength);                       //按字节流读取 
                                                                         //System.Drawing.Image result = System.Drawing.Image.FromStream(fs);
                fs.Close();
                //图片转BASE64码
                var image = Convert.ToBase64String(imgData64);
                //文件格式
                var imageType = "BASE64";
                //注册人脸用户组
                var groupId = "User";
                //注册人脸用户号
                var userId = tbTel.Text;
                //人脸注册返回结果
                bool userAddCheck = false;

                try
                {
                    // 如果有可选参数
                    var options = new Dictionary <string, object> {
                        { "quality_control", "NORMAL" },
                        { "liveness_control", "LOW" }
                    };
                    // 调用人脸注册,可能会抛出网络等异常,请使用try/catch捕获
                    var    get_result   = client.UserAdd(image, imageType, groupId, userId, options);
                    string index_resilt = get_result.ToString();
                    MessageBox.Show(index_resilt);
                    //判断注册情况
                    int index_add   = index_resilt.IndexOf("SUCCESS");
                    int index_exist = index_resilt.IndexOf("exist");
                    //注册成功,添加人脸图片
                    if (index_add != -1 || index_exist != -1)
                    {
                        //添加人脸图片
                        get_result = client.UserUpdate(image, imageType, groupId, userId, options);
                        MessageBox.Show(get_result.ToString());
                        index_resilt = get_result.ToString();
                        int index_update = index_resilt.IndexOf("SUCCESS");
                        if (index_update != -1)
                        {
                            userAddCheck = true;    //人脸图片添加成功
                        }
                    }
                }
                catch (FieldAccessException face_ex)
                {
                    MessageBox.Show(face_ex.ToString());
                }

                string sex = null;
                if (rbMan.Checked == Enabled)
                {
                    sex = rbMan.Text;
                }
                else if (rbWoman.Checked == Enabled)
                {
                    sex = rbWoman.Text;
                }

                if (userAddCheck == true)
                {
                    myconn.Open();
                    MySqlTransaction transaction = myconn.BeginTransaction();//事务必须在try外面赋值不然catch里的
                    try
                    {
                        string sql = "SELECT count(*) FROM userInfo";

                        //开启连接
                        MySqlCommand cmd = new MySqlCommand(sql, myconn);

                        Object get_count = cmd.ExecuteScalar();
                        int    count     = int.Parse(get_count.ToString()) + 1;
                        cmd.CommandText = "insert into userInfo values(@userID,@userName,@authority,@passwd,@sex,@tel,@qq,@email,@birthday,@recodeDate);";
                        cmd.Parameters.AddRange(new[] {
                            new MySqlParameter("@userID", count),                                   //用户序号
                            new MySqlParameter("@userName", tbUserName.Text),                       //用户名
                            new MySqlParameter("@authority", tbTel.Text),                           //用户识别号
                            new MySqlParameter("@passwd", tbPasswd.Text),                           //用户密码
                            new MySqlParameter("@sex", sex),                                        //性别
                            new MySqlParameter("@tel", tbTel.Text),                                 //电话(识别码)
                            new MySqlParameter("@qq", tbQQ.Text),                                   //QQ
                            new MySqlParameter("@email", tbMail.Text),                              //邮箱
                            new MySqlParameter("@birthday", dtBirthday.Value.ToString("yyyy年MM月dd日")),
                            new MySqlParameter("recodeDate", DateTime.Now.ToString("yyyy年MM月dd日 HH时mm分"))
                        });
                        //MessageBox.Show(cmd.CommandText.ToString());
                        cmd.ExecuteNonQuery();
                        //事务要么回滚要么提交,即Rollback()与Commit()只能执行一个
                        transaction.Commit();

                        label9.Text      = "信息正确,注册成功!";
                        label9.ForeColor = Color.Black;
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.ToString());
                        transaction.Rollback(); //事务ExecuteNonQuery()执行失败报错,username被设置unique
                                                //关闭连接,以免数据库被锁
                        myconn.Dispose();
                        myconn.Close();
                        label9.Text      = "注册失败!";
                        label9.ForeColor = Color.Red;
                    }
                    finally
                    {
                        //关闭连接,以免数据库被锁
                        myconn.Dispose();
                        myconn.Close();
                    }
                }
            }
        }