小编cma*_*hat的帖子

Android视频过滤器

我正在尝试创建一个应用程序,我可以在录制的视频中添加过滤器.基本上,我想复制Instagram视频或Viddy中存在的功能.

我做过研究,我不能把它拼凑起来.我已经研究过使用GLSurfaceView播放录制的视频,我知道我可以使用NDK进行像素处理并将其发送回SurfaceView或以某种方式保存.问题是,我不知道如何发送像素数据,因为似乎没有访问它的功能.这个想法来自Camera函数"onPreviewFrame".该函数返回一个字节数组,允许我操纵像素并显示它.

另一个想法是使用GLSurfaceView并使用OpenGL来渲染过滤器.GLSurfaceView有一个你可以设置的渲染器,但我对OpenGL不是很熟悉.但同样,这又回到了实际获取每个视频帧的像素.我还读到了将每个帧作为纹理进行翻录,然后在OpenGL中操作纹理,但我遇到的答案并不十分详细.

最后,我研究了JavaCV.试图使用FFmpegFrameGrabber,但我也没有多少.我想只抓一帧,但是当我尝试将帧的ByteBuffer写入ImageView时,我得到一个"不足以容纳像素的缓冲区"错误.

任何指导都会很棒.

video android opengl-es filter

12
推荐指数
1
解决办法
7306
查看次数

NSButton角半径和NSPopover

我正在使用NSPopover,我将NSViewController放在内部,以显示为来自NSStatusItem的自定义视图.除了具有角半径的NSButton之外,大多数视图控制器都能正确显示.在应用圆角的地方有一些额外的白色泄漏.显示实际应用程序中的按钮,不会发生此问题.

我觉得必须对我设置为"NSAppearanceNameAqua"的NSPopover外观做些什么.

NSButton位于NSView中,显示在NSTableView中并设置为此样式.

    self.createdButton.wantsLayer = true
    self.createdButton.layer?.backgroundColor = Utils.blackColor().CGColor
    self.createdButton.layer?.masksToBounds = true
    self.createdButton.layer?.cornerRadius = 5
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述 在此输入图像描述

顶部图片是实际应用程序打开时的图像.底部图像是在NSPopover中显示视图控制器的时候.

macos rounded-corners nsstatusitem nsbutton

5
推荐指数
1
解决办法
843
查看次数