美文网首页
.NET 证件照替换底色

.NET 证件照替换底色

作者: gubird | 来源:发表于2019-12-22 15:30 被阅读0次

引言

现在照相馆越来越少了,拍摄证件照越来越贵了,还好我也打印机,还好我是个程序员


需求分析

使用百度人像分割技术,先将人像抠出开,在写入相对应的背景图片中即可

上代码

*首先我们使用百度人像分割 文档地址:https://ai.baidu.com/tech/body/seg

 static void Main(string[] args)
        {

            // 设置APPID/AK/SK
            var APP_ID = "百度appID";
            var API_KEY = "百度API_KEY ";
            var SECRET_KEY = "百度SECRET_KEY ";

            var client = new Baidu.Aip.BodyAnalysis.Body(API_KEY, SECRET_KEY);
            client.Timeout = 60000;  // 修改超时时间
            var image = File.ReadAllBytes(@"图片地址");
            // 调用人像分割,可能会抛出网络等异常,请使用try/catch捕获
            var result = client.BodySeg(image);
            UploadImageByBase64String(result["foreground"].ToString());
            Console.ReadKey();
        }

将Base64位码保存成图片,并替换底色

  public static void UploadImageByBase64String(string imgStr)
        {
            var result="";
        
            try
            {
                byte[] bt = Convert.FromBase64String(imgStr);//获取图片base64
                string fileName = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString();//年月
                string ImageFilePath = Directory.GetCurrentDirectory()+"/Image" + "/" + fileName;
                if (!System.IO.Directory.Exists(ImageFilePath))//如果不存在就创建文件夹
                {
                    System.IO.Directory.CreateDirectory(ImageFilePath);
                }
                string ImagePath = ImageFilePath + "/" + System.DateTime.Now.ToString("yyyyHHddHHmmss");//定义图片名称
                File.WriteAllBytes(ImagePath + ".png", bt); //保存图片到服务器,然后获取路径  
                result = ImagePath + ".png";//获取保存后的路径

                Image Imageimage;
                Imageimage = System.Drawing.Image.FromFile(result);
                Bitmap bitmap = new Bitmap(Imageimage);
                //  bitmap.MakeTransparent(Color.Red);
                int width = bitmap.Size.Width;
                int height = bitmap.Size.Height;

                string ImagePath3 = ImageFilePath + "/" + System.DateTime.Now.ToString("yyyyHHddHHmmss") + "-33-.png";//定义图片名称

                Bitmap bmp = new Bitmap(width, height);
                Graphics g = Graphics.FromImage(bmp);
                SolidBrush b = new SolidBrush(Color.Yellow);//这里修改颜色
                g.FillRectangle(b, 0, 0, 300, 300);
                g.DrawImage(Imageimage, 0, 0);
                bmp.Save(ImagePath3);

            }
            catch (Exception e)
            {
                throw e;
            }

            Console.WriteLine(result);
        }

结束

相关文章

  • .NET 证件照替换底色

    引言 现在照相馆越来越少了,拍摄证件照越来越贵了,还好我也打印机,还好我是个程序员 需求分析 使用百度人像分割技术...

  • 2019-04-28快速给证件照换底色

    今天白天临时接了个任务,给领导的证件照换底色,可是公司电脑里的PS不知道怎么回事,使用替换颜色时会跳出内存不足的提...

  • 证件照换底色

    1.蓝底变成红底(互换)的方法(有瑕疵)(白色不行)。 1.图像菜单栏--调整--替换颜色(R)--移到画板吸取背...

  • Photoshop常用套路

    证件照换底色 粗活:快速选择工具选择底色,调整边缘后,删除底色像素,下方新建目标色图层,人像部分原色光晕和发丝部分...

  • 基于色彩阈值实现背景替换

    一、静态图片的背景替换 以证件照替换背景颜色为例子(网上找了个证件照,脸已遮住),其中需要注意的是对蒙版做平滑处理...

  • Photoshop︱证件照换底色

    现在很多地方都要用到我们的证件照,比如报考公务员或者研究生、投递简历、各种护照、各种通行证、各种驾照等等,他们有的...

  • 技巧||证件照更换底色

    文/沐沐 证件照是平时使用最多的特殊照片,为什么说它特殊呢? 因为证件照对于不同的场合有着不同的要求: 比如学校、...

  • 只需30秒?!证件照换背景就是这么迅速

    证件照是现在我们经常使用的照片之一,有些时候在网上报名参加各种考试都要用到。常见的证件照底色有白色,红色,蓝色三种...

  • Python代码替换证件照背景颜色

    通过Python程序替换证件照背景颜色,以后更换证件照背景就不会再苦恼了。 思路: 先去掉原照片的背景颜色 再添上...

  • 不靠ps,ppt也可以制作证件照

    过去有小伙伴让我帮忙修改证件照底色,其实我也不会有ps,但是,我有ppt呀。 今天给大家分享ppt制作证件照全攻略...

网友评论

      本文标题:.NET 证件照替换底色

      本文链接:https://www.haomeiwen.com/subject/iluonctx.html