

滤镜也能复制粘贴?视频编辑服务专属滤镜一键搞定
source link: https://segmentfault.com/a/1190000041236628
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

滤镜也能复制粘贴?视频编辑服务专属滤镜一键搞定
剪辑制作视频时,如果用户想要实现视频与某张特定图片一样的滤镜风格,怎么提取呢?
华为视频编辑服务(Video Editor Kit)全新上线“专属滤镜”功能,集成后即可使应用拥有复制滤镜的能力,一键迁移滤镜色彩到视频或者图片上,想要什么滤镜效果即刻粘贴,可支撑多样化的图像美化需求,并且集成简单、用户操作更轻松。
- 支持克隆滤镜和单图模仿,两个接口,可选择集成。克隆滤镜同时上传原图和滤镜图,复制效果更好;单图模仿只需上传滤镜图,操作更简单。
- 自动保存滤镜图,方便用户后续直接迁移滤镜风格,而不需再次添加。
- 支持自定义滤镜图名称。
可调整滤镜作用强度,自定义设置滤镜风格。
1 开发准备
详细准备步骤可参考华为开发者联盟官网:
https://developer.huawei.com/...
2 编辑工程集成
2.1 设置应用的鉴权信息
可以通过api_key或者Access Token来设置应用鉴权信息。
通过setAccessToken方法设置Access Token,在应用启动时初始化设置一次即可,无需多次设置。
MediaApplication.getInstance().setAccessToken("your access token");
通过setApiKey方法设置api_key,在应用启动时初始化设置一次即可,无需多次设置。
MediaApplication.getInstance().setApiKey("your ApiKey");
2.2 设置唯一标识ID,即License ID。
License ID是进行管控的有效凭证,您要保证设置License ID的唯一性。
MediaApplication.getInstance().setLicenseId("License ID");
2.2.1初始化Editor运行环境
创建编辑工程,需要首先创建Editor对象并初始化其运行环境。当离开编辑工程时,应释放Editor实例。
(1) 创建Editor对象
HuaweiVideoEditor editor = HuaweiVideoEditor.create(getApplicationContext());
(2) 指定预览窗口的布局位置
预览窗口负责视频图像画面的渲染,由视频编辑原子能力SDK内部创建SurfaceView来实现。在创建窗口之前,需要在您的App中指定预览窗口的布局位置。
<LinearLayout android:id="@+id/video_content_layout" android:layout_width="0dp" android:layout_height="0dp" android:background="@color/video_edit_main_bg_color" android:gravity="center" android:orientation="vertical" /> // 指定预览窗口 LinearLayout mSdkPreviewContainer = view.findViewById(R.id.video_content_layout); // 设置预览窗口承载的布局 editor.setDisplay(mSdkPreviewContainer);
(3) 初始化运行环境,如果License鉴权失败,会抛出LicenseException。
当Editor对象创建之后,此时还没有占用实际的系统资源,需要手动选择其环境初始化的时机,此时视频编辑原子能力SDK内部会创建必须的线程和定时器等。
try { editor.initEnvironment(); } catch (LicenseException error) { SmartLog.e(TAG, "initEnvironment failed: " + error.getErrorMsg()); finish(); return; }
2.2.2添加视频、图片
创建一条视频泳道,然后往泳道上添加图片或者视频素材。图片和视频素材需要通过文件路径添加到泳道上。
// 获取时间线对象 HVETimeLine timeline = editor.getTimeLine(); // 创建视频泳道 HVEVideoLane videoLane = timeline.appendVideoLane(); // 在视频泳道的末尾,添加视频资源 HVEVideoAsset videoAsset = vidoeLane.appendVideoAsset("test.mp4"); // 在视频泳道的末尾,添加图片资源 HVEImageAsset imageAsset = vidoeLane.appendImageAsset("test.jpg");
2.2.3创建外联特效泳道
专属滤镜需要添加在特效泳道中,可以跨多个资源,可以任意调节其时间长度。
// 创建特效泳道 HVEEffectLane effectLane = timeline.appendEffectLane();
3 专属滤镜集成
// 创建专属滤镜算法引擎 HVEExclusiveFilter filterEngine = new HVEExclusiveFilter(); // 初始化专属滤镜算法引擎 mFilterEngine.initExclusiveFilterEngine(new HVEAIInitialCallback() { @Override public void onProgress(int progress) { // 初始化进度回调 } @Override public void onSuccess() { // 初始化成功 } @Override public void onError(int errorCode, String errorMessage) { // 初始化失败 } }); // 创建单图滤镜,指定一个Bitmap和滤镜的名字 // 返回滤镜ID,通过此ID,可以在数据库中查询滤镜相关的所有信息 String effectId = mFilterEngine.createExclusiveEffect(bitmap, "自定义滤镜01"); // 将滤镜添加到特效泳道中,起始位置0, 时长3000ms effectLane.appendEffect(new HVEEffect.Options( HVEEffect.CUSTOM_FILTER + mSelectName, effectId, ""), 0, 3000);
Demo演示
了解更多详情>>
访问华为开发者联盟官网
获取开发指导文档
华为移动服务开源仓库地址:GitHub、Gitee
关注我们,第一时间了解 HMS Core 最新技术资讯~
Recommend
-
105
macOS - @billows - 没注意什么时候开始的,突然发现复制粘贴功能没那么灵敏了,就是有时候会好几次才成功,大多数是发生在跨 APP 的时候,比如从 chrome 复制粘贴到 iterm,从 iterm 的一个 session
-
42
文章截图 - 复制并粘贴网页 / 文章链接可以转成一张长图片,免费! - NEXT
-
43
-
49
了解如何在 Linux 中使用 xclip。 在使用 Linux 桌面工作时,你通常如何复制全部或部分文本?你可能会在文本编辑器中打开文件,选择全...
-
38
复制粘贴一时爽,频出 bug 火葬场。对开发者而言,Stack Overflow 和 GitHub 是最为熟悉不过的两大平台,这些平台充斥着大量开源项目信息和解决各类问题的代码片段。最近,一位叫做 Aioobe 的开发者在一项调查中发现了一段自己十年前写的...
-
31
在最近的 Web 开发中, 有遇到使用Clipboard的场景。即在 B 侧 Web 业务中, 对于复杂页面的配置, 希望提供复制粘贴功能。 思考了几种方案: 依赖后台接口, 新增数据 从需求角度来讲, 比较简单的方案就是调用后台接口, 生成一条新数据,
-
27
整理了一些Java方面的架构、面试资料(微服务、集群、分布式、中间件等),有需要的小伙伴可以关注公众号【程序员内点事】,无套路自行领取 本文作者:程序员内点事 更多精选文章 技术部突然宣布:JAVA开发人员全部要会接口自动化测试框架 3万字总结,Mysql
-
35
我习惯使用 Vim 编辑 Markdown 文件,一直存在一个痛点就是粘贴图片很不方便。 前后对比 我以前常用的操作流程: 复制图片/截图; 在保存图片对话框里一层层点选保存路径,输入文件名保存...
-
11
使用markdown粘贴截图时,操作步骤比较多: 1)截取图片; 2)将图片存在特定位置; 3)记住图片路径,在markdown文件中编写代码; 4)预览效果; 而word之类的文档编辑器,只需要截图后,执行粘贴操作即可,特别方便。...
-
4
太强了!前端 UI 代码也能快速复制粘贴 做为一个个人独立开发者,虽然是一个后端工程师,但是有时候也需要参与一些前端的开发工作。前端的一些基础开发没什么问题,尤其是有一些现成可用的组件,但是对于我来说最难的是整体的布局、调整 CSS...
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK