前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从Storyboard到DIY实现一个漫画生成器-01

从Storyboard到DIY实现一个漫画生成器-01

作者头像
mixlab
发布2018-07-25 12:13:30
8740
发布2018-07-25 12:13:30
举报

Storyboard

谷歌的安卓应用

用户只需拍摄一段视频并将其加载到 Storyboard 中即可将视频转换为单页漫画的布局。该应用会自动选择有趣的帧,并将其应用于6种视觉样式中的一种。生成的漫画大约1.6万亿种不同的可能性!

技术

图像内容识别

人物分割

图片裁切

图片排版算法

图像编码和解码技术

如何使用 Javascript 实现一个漫画生成器呢?

为什么选择 Javascript ?因为这是个轻量级的实现方案,不需要这么复杂的深度学习模型服务的部署,也不用开发后端复杂的一套代码。而且还方便在github直接分享给任何人体验。

图像内容识别,我们可以选择tensorflowJS版本的 mobilenet 模型来识别内容,posenet 来识别多个人物,然后 smartscrop.js 来实现图片的智能裁切,排版通过预设的模版,通过 canvas 的 globalCompositeOperation 来控制模版的叠加效果,至于图像编码跟解码技术,video 通过 canvas 的 drawImage 即可获得。技术上比较难的就是获取视频中哪些关键帧作为漫画的内容

今天先更新第一部分内容:

自动把一张图片按照预设的模版进行裁切

——图片排版算法

效果如下:

主要熟悉 canvas 的 globalCompositeOperation 操作。代码如下:

var canvas=document.createElement('canvas'),
    ctx=canvas.getContext('2d');

var mask=document.querySelector('.mask');

canvas.width=mask.naturalWidth;
canvas.height=mask.naturalHeight;

var img=document.querySelector('.pnew');

ctx.drawImage(mask,0,0);
ctx.globalCompositeOperation='source-in';
ctx.drawImage(img,0,0,canvas.width,canvas.height);

document.querySelector('#result').appendChild(canvas);

上面的代码,请根据实际的情况修改。先把图片蒙版画到 canvas 上,通过 source-in 的设置,再把待处理的图片画到 canvas 上。这里蒙版建议使用 svg 的格式,通过 sketch 等软件直接制作。

我们稍微拓展下,可以把漫画里的每一块做成蒙版,然后裁切目标图片:

当然蒙版也可以换成任何形状,比如:

近期热门文章推荐:

智能产品架构师活动-mixlab-6月活动圆满落幕

你是 Infinite Learner 吗?

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2018-06-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 无界社区mixlab 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Storyboard
相关产品与服务
内容识别
内容识别(Content Recognition,CR)是腾讯云数据万象推出的对图片内容进行识别、理解的服务,集成腾讯云 AI 的多种强大功能,对存储在腾讯云对象存储 COS 的数据提供图片标签、图片修复、二维码识别、语音识别、质量评估等增值服务。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档