AI神器竟然能代替PS抠图了
感慨时代发展真快
用途
电商抠主图做海报,几秒搞定,比手工快几个数量级,我还没记得N多年前做企业网站,对照Photoshop一抠就是好几天;还有可以做证件照之类也是不在话下。
除了remove.bg以外,还有picup,Face++旷视等。
抠图效果
关于定价
均价1.3元,高冷小贵,picup的效果也不逊色,最高也不过0.1元
实力对比
picup对边缘处理不能remove.bg锐利,操作上还有要区分上传的是人像还是物品,而remove.bg可以一股脑往里扔
传统用法
最直接的就是网页版在线上传一张图片,其次是下载它们的客户端。
在线版是最傻瓜的,上手就用,还支持网址url复制粘贴过来直接识别抠图;客户端一般要先配置一下apikey密钥,再开始使用,相当于他把api集成好了,换换key就用了。
出于职业病,我还它的.exe包扒了扒,果不其然,清一色是node.js+electron写的,picup还用上了element-ui,一股熟悉的味道哈
码农用法
那当然是自己对api了。我发现它们有全PC平台的客户端,甚至连photoshop都集成上了,但是还没有小程序哈。
看了上述2家的api,如出一辙啊,我这里就以remove.bg为例
先看一下效果
前端代码
前端代码做的事情就是将图片传到自己的后端,等后端与抠图api交互,返回base64编码后的字符串,然后拼接上data:image/png;base64,,交给<image>组件渲染
后端代码
后端代码做的事情是通过koa-body这个中间件接收到File文件对象,通过抠图api得到二进制流,通过toString(‘base64’)返回给小程序端。
app.js主入口文件
在npm install koa-body安装第三方包后,在app.js主入口文件加入以下代码
const koaBody = require(koa-body) app.use(koaBody({ multipart: true })) const ps = require(./routes/ps/index) router.use(/ps, ps.routes())
ps/index.js路由文件
在这个文件里就是将文件传给抠图api作处理后,直接输出流给新端,而不是像api文档示例中的那样要保存到本地
const router = require(koa-router)() const rp = require(request-promise) // 添加 router.post(/upload, async (ctx, next) => { console.log(开始上传) var fs = require(fs) console.log(接收的内容) var fileUrl = ctx.request.files.image.path console.log(文件路径) console.log(fileUrl) const result = await rp.post({ url: https://api.remove.bg/v1.0/removebg, formData: { image_file: fs.createReadStream(fileUrl), size: auto }, headers: { X-Api-Key: wkMhcc4TRNFpxjL79Kf8mMU1 }, encoding: null }) console.log(result) const body = result console.log(输出结果) console.log(body) ctx.body = body.toString(base64) }) module.exports = router
结语
抠图api相见恨晚的感觉,普通人能用,平面设计师赶工时也能顶上用,现在有了api,可以发挥无限想像力,集成到自己的产品中。