如何给证件照换一个背景颜色

2023-11-19

我们在考试报名的时候,经常是不同的考试需要不同的登记照尺寸和背景颜色,但是我们基本上不可能每种颜色的证件照都去拍一张吧,那样也太麻烦成本也太高。所以通过前端实现了一个改变证件照背景颜色的方法。他可以将证件照的背景颜色修改为任意的颜色,而不局限于红白蓝等等基础颜色。并且有几种不同的算法进行选择,而且针对不同的登记照,它提供了不同的背景色识别灵敏度来供用户自行调整,从而达到最好的背景色修改效果。证件照改换背景色https://www.butterpig.top/photochangebackground

该功能是通过纯前端js完成的,通过操控CANVAS画布中的每个像素点来实现更换背景色,因此该方法并没有用到专业的图像处理或者机器学习方法来进行,因为是纯前端处理,引入太复杂的框架反而不利于用户加载访问速度,而且纯前端处理,在绝大部分情况下的效率还是挺高的!

let preCanvas = document.getElementById('canvas')
let ctx = preCanvas.getContext('2d')
preCanvas.width = this.img.width
preCanvas.height = this.img.height
ctx.drawImage(this.img, 0, 0, this.img.width, this.img.height)
let imgData = ctx.getImageData(0, 0, this.img.width, this.img.height);
this.dots = [];
let r = imgData.data[(10 * imgData.width + 10) * 4];
let g = imgData.data[(10 * imgData.width + 10) * 4 + 1];
let b = imgData.data[(10 * imgData.width + 10) * 4 + 2];
let a = imgData.data[(10 * imgData.width + 10) * 4 + 3];

主要是利用了CANVAS的getImageData方法,来获取每个像素点的信息,并且通过该信息来获取每个像素点的R/G/B/A四个色彩通道的数值大小,最终进行比较和替换,再加之一定的优化算法辅助。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何给证件照换一个背景颜色 的相关文章

随机推荐

  • Flask(一)

    Flask 0 Flask简介 Flask是一个基于Python开发并且依赖jinja2模板和Werkzeug WSGI服务的一个微型框架 对于Werkzeug本质是Socket服务端 其用于接收http请求并对请求进行预处理 然后触发Fl
  • 设计模式——导论

    作为软件开发人员 我们在平时工作的过程中 往往需要编写很多的代码来实现我们的需求 很多的时候会造成代码臃肿和代码冗余的情况 这个时候我们需要引入一个理念 设计模式 设计模式存在的意义在于 1 使得我们的代码更加精炼 2 使我们代码的可读性更
  • 面试求职经历及遇到的部分问题

    转眼间已经工作一年多了 最近想换个工作环境 就选择了跳槽 跳槽对我们程序猿来说并没什么稀奇 但这是我第一次跳槽 也颇感激动 哈哈 总的来说 这次找工作还是相对去年来说比较容易的 毕竟已经工作一年了嘛 记得去年的时候投20份简历也不一定会有面
  • 开发者本地搭建性能监测工具(Windows)

    ElasticSearch 8 9 0 开发模式安装 JDK安装 官方提供版本与JDK支持关系 https www elastic co cn support matrix matrix jvm 我们安装Elasticsearch 8 9
  • ATT&CK实战系列——红队实战(一)红日靶场1

    目录 靶场搭建 拓扑图 配置网络 外网打点web服务器 信息搜集 nmap扫端口服务 dirsearch目录扫描 phpmyadmin日志getshell yxcms 后台getshell xss 关闭win7防火墙 上线msf cs 上线
  • 基于加密流量组建跨机房(混合云)k8s集群

    业务场景 解决服务同城 异地多活灾备 环境 a机房 私网 192 168 1 0 24 公网ip 111 111 111 111 b机房 私网 192 168 2 0 24 公网ip 222 222 222 222 c机房 私网 192 1
  • 传统目标检测算法综述

    传统目标检测算法综述
  • Node.Js基础知识

    Node Js架构 Natives modules 当前层内容由JS实现 提供 应用程序可直接调用库 例如 fs path http等 JS语言无法直接操作底层硬件设置 Builtin modules 胶水层 Builtin modules
  • 基于DS18B20和HS1101的仓库自动报警系统

    基于DS18B20和HS1101的仓库自动报警系统 背景介绍 效果展示 完整版的项目代码 仿真文件 下面是项目原理图 具体管脚定义如下图 18B20温度原理 HS1101湿度传感器 红外测距报警模块我用到的是GP2D12 通过数模转化器AD
  • 解决高德地图UnsatisfiedLinkError问题

    今天遇到一个bug 高德地图3d地图java lang UnsatisfiedLinkError 问题分析 没有找到libgdamapv4sdk751 so java lang UnsatisfiedlinkError 的解释如下 Thro
  • 交换机自学习和转发帧

    交换机自学习和转发帧 主机A给主机B发送帧 首先假设已经通过arp协议得到主机B的MAC地址 当交换机1收到该帧后将源MAC地址和接口登记 然后在帧交换表中查到目的MAC地址 没有找到就进行盲目转发 泛洪 交换机2收该帧后 做相同的动作 主
  • vue中常用的数组方法

    Vue中常用的数组方法 filter map forEach find findIndex some every filter map forEach find findIndex some every filter filter 方法创建
  • OpenMMLab AI实战营第一天笔记

    计算机视觉基础与openmmlab介绍 机器学习和神经网络简介 机器学习基础 机器学习是什么 从数据中学习经验 以解决特定问题 机器学习的典型范式 监督学习 有标签 无监督学习 无标签 强化学习 让智能体自己适应环境 机器学习中的分类问题
  • 联想小新笔记本,16G运行内存只能使用13.9G或14.9G的解决方案

    1 问题描述 我的电脑是联想小新Pro 16 一共有16G的运行内存 但实际情况只能使用13 9G 如下图所示 2 解决方案 这需要进入电脑BIOS 更改配置 1 电脑关机 在开机的时候一直点F2 进入到BIOS模式 并把语言设为中文 2
  • 缺陷管理与测试用例

    一 提交缺陷注意实现 可重现 发现缺陷可以在开发人员的电脑上实现 唯一性 每个缺陷有一个编号 也就是编号的ID 缺陷报告每行是一个缺陷 规范性 提交的缺陷需要符合公司制定的规范要求 缺陷报告的规范 ID 标题 重现步骤 期望结果 实际结果
  • 除了快手与抖音,“云想科技们”也在加速“出圈”

    在电商行业 大家可能听说过传统电商行业的 代运营 现在短视频赛道崛起 代企业运营 以效果为前提 做出符合企业品牌价值好的 新的内容的短视频营销服务商也受到更多关注 云想科技就是其中的代表 在行业新常态下 布局新业务依旧是企业寻求增长新动力的
  • Visual Grounding任务常用数据集介绍RefCOCO、RefCOCO+、RefCOCOg、ReferItGame和Flickr30K Entities

    Visual Grounding任务常用的数据集有五个 RefCOCO RefCOCO RefCOCOg ReferItGame和Flickr30K Entities RefCOCO RefCOCO RefCOCOg 是三个从MSCOCO中
  • linux服务器使用gustat指令查看gpu显卡的使用情况(比nvidia-smi好用)

    使用gpustat指令需要先安装gpustat 安装需要root权限 apt install gpustat 查看gpu使用情况 gpustat nvidia smi gpustat相比于nvidia smi查看的信息更加详细 可以看到使用
  • flex布局宽高度设置不成功

    flex布局中 会出现是在宽高 但是不起作用 那是因为flex布局当不够的时候自动压缩了 可以选择 让其不压缩 flex shrink 0 然后在设置宽高 或者利用复合属性 flex 0 0 83rpx 这篇博客是对flex布局的讲解 以及
  • 如何给证件照换一个背景颜色

    我们在考试报名的时候 经常是不同的考试需要不同的登记照尺寸和背景颜色 但是我们基本上不可能每种颜色的证件照都去拍一张吧 那样也太麻烦成本也太高 所以通过前端实现了一个改变证件照背景颜色的方法 他可以将证件照的背景颜色修改为任意的颜色 而不局