关闭

Android视频编辑器(四)通过OpenGL给视频增加不同滤镜效果

前言        在上面的几篇文章中,我们实现了录制视频、通过opengl在录制过程中和给本地视频添加水印和美颜效果,还没看过的童鞋,可以看该系列的前面三篇文章。而这篇博客,我们来实现给视频添加各种各样的滤镜。现如今给视频加各种不同的滤镜对各视频类app来说,已经是标配功能。而添加各类滤镜可以使我们拍摄的视频更美观漂亮。所以这篇博客,我们就要来实现给视频添加上除美颜之外的其他滤镜。   ...
阅读(132) 评论(1)

Android视频编辑器(三)给本地视频加水印和美颜滤镜

前言          在上两篇文章中,我们分别实现了通过OpenGL预览、录制视频,以及在预览和录制的时候加上视频水印和美白效果,而作为一个视频编辑器,当然不仅仅是录制视频,也会有从本地选择视频,然后加上视频水印、美白、滤镜等效果,再进行发布的需求。所以作为系列文章的第三篇,我们就来实现如何给本地视频加上视频水印和美颜效果。        本系列的文章包括如下:...
阅读(353) 评论(0)

Android视频编辑器(二)预览、录制视频加上水印和美白磨皮效果

前言 这是视频编辑器系列的第二篇文章,在上篇文章中,我们讲解了利用OpenGl和SurfaceView进行视频预览,MediaCodec和MeidaMuxer进行视频录制和断点续录。而这篇主要会讲解一下如何在预览和录制视频的时候,利用OpenGL加上水印和美白磨皮的效果。如今的各种拍照、录制视频类的APP,如果没有美白磨皮的功能,那基本上是没有市场的了。然后,因为最近太忙,导致已经过去这么久才更...
阅读(248) 评论(2)

Android视频编辑器(一)通过OpenGL预览、录制视频以及断点续录等

前言 如今的视频类app可谓是如日中天,火的不行。比如美拍、快手、VUE、火山小视频、抖音小视频等等。而这类视频的最基础和核心的功能就是视频录制和视频编辑功能。包括了手机视频录制、美白、加滤镜、加水印、给本地视频美白、加水印、加滤镜、视频裁剪、视频拼接和加bgm等等一系列音视频的核心操作。而本系列的文章,就是作者在视频编辑器开发上的一些个人心得,希望能帮助到大家,另外因个人水平有限,难免有不足之...
阅读(342) 评论(4)

从零开始学算法(八)最短路径之Bellman-Ford算法的队列优化以及几种最短路径算法对比

前言 从上篇博客的,Bellman-Ford算法介绍的最后一部分,我们指出,其实,可以对该算法进行进一步的优化。原因是因为:其实在每一轮松弛操作结束后,就会有一些顶点已经求得其最短路径。此后这些顶点的最短路径的估计值就会一直保持不变,但是每一次都还要对其进行判断。这里浪费了时间,这就启发了我们每次仅对最短路估计值发生了变化的顶点的所有出边执行松弛操作。所以下面我们学习Bellman-Ford算法...
阅读(94) 评论(1)

从零开始学算法(七)最短路径之Bellman-Ford算法

前言             前面两篇文章,我们分别学习了Floyed-Warshall和Dijkstra算法。还有印象吗?这篇文章我们就来学习一下另一种最短路径的算法,Bellman-Ford算法和一些邻接表的知识。在上篇文章中学习的Dijkstra算法的时间复杂度是O(N*N),那有没有什么可以优化速度的方法呢?首先,这篇文章就先学习一下 通过邻接表来优化Dijkstra算法,然后再学习一下...
阅读(73) 评论(0)

android使用CMake进行jni编写遇到的一些问题

前言          android studio 2.2之后出的CMake 让jni的编写方便了很多,使用CMake让我们不在烦恼函数的定义,以前我们需要通过javah命令生成,jni规定的函数名,现在不需要了。他也让我们可以很方便的编写c/c++代码,自动打成so。总体来说,让我们的jni编写变得更简单。但是网上关于CMake的使用翻来覆去也就是官网的那些。所以我就记录一下自己在使用CMa...
阅读(714) 评论(1)

从零开始学算法(六)最短路径之Dijkstra算法

前言 在上一篇博客中,我们学习了最短路径系列的第一种算法Floyd-Warshall算法来求解图中点与点之间的最短路径的问题。这篇博客我们就要来学习一下,求解单源最短路径的一种算法:Dijkstra算法。 具体问题 还是几个城市间的最短路径问题,这次我们需要求的是1号顶点到其余个点的最短路径。路径图如下 "> 现在我们需要求解1号点到2、3、4、5、6号点的最短路径。 Dijk...
阅读(97) 评论(0)

从零开始学算法(五)最短路径之Floyed-Warshall算法

前言 算法中的最短路径问题,是一个经典的算法问题。旨在寻找图(由顶点和边组成)中顶点到顶点间的最短路径。而我们接下来的几篇文章就会一起学习最短路径问题中常用的Floyed-Warshall、Dijkstra、Bellman-Ford以及Bellman-Ford的队列优化这四种算法。这些最短路径的算法在实际运用中也有不可忽视的作用。接下来,我们就来学习一下Floyed-Warshall算法...
阅读(198) 评论(0)

从零开始学算法(四)搜索算法(二)(广度优先搜索)

前言 在上一篇博客中,我们学习了搜索算法的第一种:深度优先搜索,这篇博客就让我们一起来学习另一种大家都经常听见的搜索算法:广度优先搜索。看名字就知道,他们两者之间肯定有什么不可告人的秘密。广度优先搜索,又叫宽度优先搜索,英文名:Breadth First Search。属于一种盲目搜寻方法,目的是系统的展开并且搜索图中所有的点,以找寻结果。我们还是以上篇博客后面提到的那个迷宫地图的问题来详细...
阅读(117) 评论(0)

从零开始学算法(三)搜索算法(一)(深度优先搜索)之地图迷宫

前言 前面两篇文章,只是讲了一下算法的入门,排序算法和枚举算法,大家是不是觉得很简单呢?那么这篇文章,我们就有学习一下,稍微有点难度的,也是面试、笔试经常见到的名词。而常见的搜索算法就有,上篇文章中所介绍的穷举算法、以及本篇将要介绍的广度优先搜索、宽度优先搜索,以及暂时不会介绍的A*算法、回溯算法等,当然最高深的搜索算法,就是百度和google的看家本领了。那就不是我们现在能够理解的范围了,他们...
阅读(190) 评论(0)

从零开始学算法(二)枚举算法(穷举法)之火柴棍等式

前言 这是本系列的第二篇文章,从名字就可以看出,将要学习穷举算法,也叫枚举法,噫,有同学可能就要问了,穷举也算算法吗?当然算啦,别拿豆包不当干粮,拿乞丐不当江湖中人,事实上,江湖上很多鼎鼎有名的高手,就来自于天下第一大帮,丐帮。所以,枚举其实也是一种算法思想。现在我们就来学习神功的第二层,枚举算法 实际需求 "> 也就是火柴等式,比如 1 + 1 = 2,其中1是两根,+号是两根,=号是两...
阅读(189) 评论(0)

从零开始学算法(一)排序算法(桶排序、冒泡排序、快速排序)

前言 这些一个系列的文章,主要是自己学习算法和数据结构的一些笔记整理。从最简单开始,一步步深入,都是自己学习过程中的领悟。对于程序猿而言,算法和数据结构就像一门强大的内功,练的过程中,会比较难,相对于武学招式,需要更多的理解能力和悟性,但是一旦练成,那就能变身强大的武林高手,纵横武林,不再是梦想。本系列武林秘籍主要来自于个人学习《啊哈!算法》《算法导论》这两个算法的入门级书籍。所以,高手就不喜勿...
阅读(286) 评论(1)

SurfaceView的nativeUnlockCanvasAndPost 导致的没有任何错误信息的IllegalArgumentException

最近项目里面使用到了surfaceView,在子线程中进行页面绘制,但是出现了一个莫名其妙的bug,该Exception,没有什么信息,无从判断是什么原因导致的 "> 所以,需要我们去看看为什么会导致这样的问题,我们的代码是如下 if (mSurfaceHolder != null) { mCanvas = mSurfaceHolder.loc...
阅读(582) 评论(0)

由FragmentTabHost导致的Can not perform this action after onSaveInstanceState异常

这是开发中,用户反馈很多的一个exception。主要是Fragment的commit和commitAllowingStateLoss的问题,出现这种问题的原因很多,本次主要因为FragmentTabHost导致的该bug的发生 "> 完全没有,我们应用的我们熟悉的那些类的堆栈信息 ">     是不是,有种无从下手的感觉,因为没有我们自己写的类的信息,那我们需要从异常发生的地方,...
阅读(600) 评论(3)
20条 共2页1 2 下一页 尾页
    个人资料
    • 访问:6522次
    • 积分:256
    • 等级:
    • 排名:千里之外
    • 原创:20篇
    • 转载:0篇
    • 译文:0篇
    • 评论:15条
    最新评论