在 Android 上旋转 YUV 字节数组

2023-11-29

我正在寻找旋转从 Preview Callblack 收到的 YUV 帧预览,到目前为止,我已经创建了这篇文章,其中包含一种旋转帧预览的算法,但弄乱了预览图像相机像素旋转

旋转图像的另一种方法是从 YUV 图像创建 jpg,创建位图,旋转位图并获取位图的字节数组,但我确实需要 YUV (NV21) 格式。

供参考。我问这个问题的原因是因为我有一个支持旋转的相机应用程序,但帧预览仅以横向模式返回。


以下方法可以将 YUV420 字节数组旋转 90 度。

private byte[] rotateYUV420Degree90(byte[] data, int imageWidth, int imageHeight) 
{
    byte [] yuv = new byte[imageWidth*imageHeight*3/2];
    // Rotate the Y luma
    int i = 0;
    for(int x = 0;x < imageWidth;x++)
    {
        for(int y = imageHeight-1;y >= 0;y--)                               
        {
            yuv[i] = data[y*imageWidth+x];
            i++;
        }
    }
    // Rotate the U and V color components 
    i = imageWidth*imageHeight*3/2-1;
    for(int x = imageWidth-1;x > 0;x=x-2)
    {
        for(int y = 0;y < imageHeight/2;y++)                                
        {
            yuv[i] = data[(imageWidth*imageHeight)+(y*imageWidth)+x];
            i--;
            yuv[i] = data[(imageWidth*imageHeight)+(y*imageWidth)+(x-1)];
            i--;
        }
    }
    return yuv;
}

(请注意,只有宽度和高度是 4 倍时,这才可能有效)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 Android 上旋转 YUV 字节数组 的相关文章

随机推荐

  • Puppeteer 选项卡仅在 youtube.com 上崩溃(噢,啪!STATUS_ACCESS_VIOLATION)

    我正在使用 puppeteer 从 Youtube 的搜索结果中获取屏幕截图 不幸的是 我无法让代码在此页面上运行 任何其他页面 还有 youtube 作品中的其他页面 当我使用 https www youtube com 作为网址时 我也
  • 使用 jquery 查找 ul li 列表中任何 li 块中最深的和最后一个 li?

    我有一个 HTML 列表 有几个嵌套的 ul 和 li 当我单击 li 时 我想找到该 li 标记中最深的项目 其中没有 ul 标记 并且 li 是该组的最后一项 例子例如 点击此链接 这是我的HTML code 这是我的方法 liclk
  • 带比较器的 Java 8 流过滤器

    我想过滤列表MyObject基于values场地 在这种情况下 如果有任何值MyObject getValues小于给定值value 则谓词为假 我还没有找到使用 Stream API 的方法 所以我尝试了ComparatorPredica
  • CodeSandbox.io 标签未加载图像

    我一直在尝试使用添加图像 img tag on CodeSandbox io 但是 每次我尝试添加它时 它都不会显示 只是默认为alt标签 显示山 我正在尝试将图像加载到与包含此 JS 文件的文件相同的文件夹中 下面是生成 HTML 的代码
  • 此集合实例上不存在属性 [title]

    我正在关注 Laracasts 的视频 基本模型 控制器 视图工作流程 我有一张表保存联系信息 CREATE TABLE about id int 10 UNSIGNED NOT NULL title varchar 500 COLLATE
  • Django 中的 DecimalField 验证

    我正在尝试验证DecimalField在姜戈中 在外壳中尝试 gt gt from django forms import DecimalField gt gt from django core validators import MaxV
  • WinSCP 命令行:在缓存错误中找不到主机密钥

    我第一次尝试从 WinSCP 命令行连接到 Unix 服务器 它关闭并出现以下错误 在缓存中找不到服务器的主机密钥 您无法保证 服务器是您认为的计算机 服务器的 rsa2 密钥指纹是 ssh rsa 1024 42 9e c7 f4 7f
  • 在 C++14 中使用 auto 作为返回值和参数类型

    在 Bjarne Stroustrup 的书 C 编程语言 的第四版中 我们读到 使用 auto 我们可以避免冗余和编写长类型名称 这在泛型编程中尤其重要 因为程序员很难知道对象的确切类型 并且类型名称可能很长 第 4 5 1 节 所以 了
  • iReport 中每个组的新页面

    我正在使用 iReport 5 6 0 我想为每个组创建新页面 例如我有桌子people i know Id Name State 1 Tom friends 2 Jim friends 3 Mike enemy 4 Alex friend
  • 使用 pyuic 将 .ui 转换为 .py?

    我正在使用 OSX 10 8 python 2 7 5 我刚刚使用 QtDesigner 构建了一个 GUI 并试图弄清楚如何在 Python 中使用它 我发现我必须使用 pyuic 以及如何在此处执行此操作 pyqt在mac osx雪豹中
  • asp.net通过kerberos将Windows身份验证集成到sql服务器

    请问有人可以提供一种简单 直接的方法来启用 ASP NET gt Kerberos gt Sql Server 吗 我们有客户端机器 gt 网络服务器 gt 数据库服务器 客户端坚持要求站点必须拉取 Windows 登录名而不是提示 因此需
  • Java 中的强制可克隆接口

    我在 Java 中遇到了一个小问题 我有一个名为 可修改 的界面 实现此接口的对象是可修改的 我还有一个 ModifyCommand 类 具有命令模式 它接收两个可修改对象 以进一步在列表中交换它们 这不是我的问题 我已经设计了该解决方案
  • 如何使用 FormData API 发出 POST 请求

    我想使用 http post 将用户名和 form data 对象传递到 php 文件 当我只传递 form data 时 它可以上传我的图片 但我还想传递一些其他信息 例如用户名 请帮助我如何在 http post 中传递其他数据 这是我
  • Mongoose 仅​​选择在架构中明确声明的字段

    当使用 Mongoose 并查询数据库时 默认情况下会选择所有字段 并且我必须明确告诉 Mongoose 我不想选择哪些字段 例如 如果我不想要该字段user我应该做 var schema new Schema insertedAt typ
  • 从 GridView 项目中获取值

    我正在开发一个项目 其中有一个 5x5 的 TextView 网格 我想检查整行或整列是否具有相同的元素 我正在使用 Adapter 类来仅用一个 textview 元素来扩充我的 gridview 这是我尝试过的代码 但我似乎无法使其工作
  • Android 2.2 联系人生日日期

    我正在尝试从 android 2 2 的联系方式获取生日日期 有人可以帮我查询一下吗 这是我的代码 Override public void onCreate Bundle savedInstanceState super onCreate
  • socket.io 和不同的文件夹 --- 找到解决方案

    我是 socket io 的新手 我已经遇到了一个问题 我认为是小问题 我已经使用 npm 正确安装了 node js 和 socket io 然后为了测试 我从 socket io 剪切并粘贴了一个代码示例 一切正常 现在 我想构建我的代
  • PHP:imagepng 正在创建异常大的文件

    我正在使用我编写的一个简单的缩略图脚本 它非常标准 imgbuffer imagecreatetruecolor thumbwidth thumbheight switch type case 1 image imagecreatefrom
  • PHP PDO 扩展无法在 IIS 上运行

    我有一个使用 autoload 加载类的脚本 愚蠢 我知道 这是我用来娱乐 测试的旧代码 它似乎正在尝试自动加载 PDO 这让我相信它没有找到应有的 PDO 类 我已经检查了 php ini 和 php pdo dll 是否已启用 以及 p
  • 在 Android 上旋转 YUV 字节数组

    我正在寻找旋转从 Preview Callblack 收到的 YUV 帧预览 到目前为止 我已经创建了这篇文章 其中包含一种旋转帧预览的算法 但弄乱了预览图像相机像素旋转 旋转图像的另一种方法是从 YUV 图像创建 jpg 创建位图 旋转位