{"repo":"ZXingYe/SurfaceBridge","free":true,"listed":false,"github":"https://github.com/ZXingYe/SurfaceBridge","clone":"git clone https://github.com/ZXingYe/SurfaceBridge.git","description":"用于Android平台，可将Surface图像数据快速提取出来的工具类，Surface数据源可以来自MediaCodec、Camera、VirtualDisplay等。 SurfaceBridge支持多种输出格式，比如RGB、YUV420、YUV444等等。当然，你也可以直接把SurfaceView、TextureView作为输出源。同时为了兼容各种不同的输出大小和比例，SurfaceBridge支持传入一个Matrix参数去控制图像的变换。","language":"Java","stars":83,"topics":["surface","android","yuv","extractor","frame","rgb","matrix","shader","transformer"],"license":"Apache-2.0","category":"mobile-apps","readme_excerpt":"SurfaceBridge SurfaceBridge是一个用于将Surface图像数据快速提取出来的工具类，Surface数据源可以来自MediaCodec、Camera、VirtualDisplay等。 SurfaceBridge支持多种输出格式，比如RGB、YUV420、YUV444等等。当然，你也可以直接把SurfaceView、TextureView作为输出源。同时为了兼容各种不同的输出大小和比例，SurfaceBridge支持传入一个Matrix参数去控制图像的变换。 支持输出格式 帧格式 RGBA RGBA 8888, RGBX 8888, RGB 888, RGB 565 BGRA BGRA 8888, BGRX 8888 YUV 420 NV12, NV21, YU12, YV12 YUV 422 YUVY, YUYV, YVYU, UYVY, VYUY YUV 444 I444 颜色空间 BT.601（default） BT.709 BT.2020 示例工程 可以通过运行demo（App module）去学习SurfaceBridge的用法，demo展示了如何渲染来自不同数据源的数据，并且通过设置不同的ScaleType去变换图像。同时也展示了如何去获取不同的原始帧格式。 引入依赖 Gradle Maven 使用 设置数据源 请使用以前其中其中方式设置数据源，不可让多个数据源同时绑定一个SurfaceBridge。 数据源不限于以下几种，一般来说只要能给SurfaceTexture写数据的，就都支持。 添加渲染输出（比如SurfaceView、TextureView等） 添加帧输出监听 释放资源 其他 建议设置数据源的原始Surface大小以提高性能，如果欸有设置，那么SurfaceBridge内部每次渲染都会使用OpenGL动态获取Surface大小，但是如果你主动调用了 setDefaultInputBufferSize ，那么就会使用你设置的值。。 如果你的数据源来自相机，要么真正数据源的大小就是你的预览大小 如果你的数据源来自解码器或者播放器，那么数据源的大小就应该是视频的分辨率。 如果你的数据源来自于其他实现，尽量看看能不能获取到实际的数据源大小， 设置默认背景色，当前默认为黑色 设置YUV的颜色空间，当前默认为BT.601 未来 支持10Bit颜色 支持自定义着色器用于帧格式的转换 支持RGB到各种格式的同步转换方法。","default_branch":null,"files":null,"tree":[],"storefront":"/r/ZXingYe","claimed":false,"request_supported":{"post":"https://gitbuyer.com/r/ZXingYe/SurfaceBridge/request-supported","requests":0},"note":"indexed from public GitHub; nothing is for sale on this page. Clone it from GitHub. Paid listings live at /search."}