如何在android中使用相机检查图像是在纵向模式还是横向模式下捕获的?

2024-03-04

我正在创建一个打开照片库的应用程序,通过从图库中选择该照片,照片将显示在另一个活动中。我的问题是,我以纵向模式拍摄的照片在显示后会旋转。但我在横向模式下拍摄的照片将正确显示。

这就是为什么,我必须使用 Android 中的相机检查图像是在纵向模式还是横向模式下捕获的,以便我可以旋转纵向捕获的照片。谁能帮我怎么做?

注意:纵向拍摄的图像和横向拍摄的图像的宽度和高度相同。


您始终可以使用 Matrix 检查图像的旋转并相应地旋转它。

这段代码进入onActivityResult-->

    BitmapFactory.Options bmOptions = new BitmapFactory.Options();
    bmOptions.inJustDecodeBounds = false;
    bmOptions.inPurgeable = true;

        Bitmap cameraBitmap = BitmapFactory.decodeFile(filePath);//get file path from intent when you take iamge.
        ByteArrayOutputStream bos = new ByteArrayOutputStream();
        cameraBitmap.compress(Bitmap.CompressFormat.JPEG, 100, bos);


        ExifInterface exif = new ExifInterface(filePath);
        float rotation = exif.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);  
        System.out.println(rotation);

        float rotationInDegrees = exifToDegrees(rotation);
        System.out.println(rotationInDegrees);

        Matrix matrix = new Matrix();
        matrix.postRotate(rotationInDegrees);

        Bitmap scaledBitmap = Bitmap.createBitmap(cameraBitmap);
        Bitmap rotatedBitmap = Bitmap.createBitmap(cameraBitmap , 0, 0, scaledBitmap .getWidth(), scaledBitmap .getHeight(), matrix, true);
        FileOutputStream fos=new FileOutputStream(filePath);
        rotatedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, fos);
        fos.flush();
        fos.close();

OnActivityResult 代码到此结束。

下面的这个函数用于获取旋转:-

    private static float exifToDegrees(float exifOrientation) {        
    if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_90) { return 90; } 
    else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_180) {  return 180; } 
    else if (exifOrientation == ExifInterface.ORIENTATION_ROTATE_270) {  return 270; }            
    return 0;    
 }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在android中使用相机检查图像是在纵向模式还是横向模式下捕获的? 的相关文章

随机推荐

  • 在 JavaScript 中执行继承

    现在 虽然我知道您不能像在 C 中那样执行继承 但我在互联网上看到它提到这是可能的 如果无法使用纯 JavaScript 代码 那么是否可以使用Ext JS http en wikipedia org wiki Ext JS如果是这样怎么办
  • 伊莎贝尔的文件准备

    我想获得与相关的 LaTeX 代码这个理论 https github com rjraya Isabelle blob master curves Hales thy 以前的答案仅提供文档的链接 让我描述一下我做了什么 我去了目录Hales
  • Eclipse PDT 插件安装

    我尝试在 Eclipse 中安装 PDT 插件 但出现错误 Cannot complete the install because one or more required items could not be found Software
  • Firebase 身份验证 - 过期的 api 密钥

    我正在开发一个无服务器客户端应用程序 它使用 Firebase 身份验证和 Google 的其他服务 一切都很顺利 突然 FB 登录身份验证停止工作 当尝试登录用户时 我会收到一个 400 BADREQUEST 其正文如下 error co
  • 使用 Socket.IO 发送数据的频率是多少?

    我正在创建一个 Web 应用程序 需要频繁地将少量数据 每个套接字 3 个整数值 从服务器发送到客户端 并且我想看看是否有使用更新客户端的最大频率套接字IO https socket io 我希望能够实现至少 50 个套接字连接 每个连接每
  • 在Delphi XE2上使用MSBuild编译运行时包时出现编译错误

    我正在将我们的构建服务器 Jenkins 升级到Delphi XE2 编译运行时包时出现以下错误 ComponentsR vrc 61 error RC2135 file not found ComponentsR Icon4 ico 此运
  • drawViewHierarchyInRect:afterScreenUpdates: 延迟其他动画

    在我的应用程序中 我使用drawViewHierarchyInRect afterScreenUpdates 为了获得我视野中的模糊图像 使用AppleUIImage类别UI图像效果 https developer apple com do
  • 如何检测 WebView 页面何时尝试关闭?

    我有一个 WebView 我正在其中加载 facebook sharer php 页面 此页面没有任何形式的确认 它只是在用户共享或取消后关闭窗口 由于它被加载到网络视图中 因此本身没有什么可以 关闭 的 因此 我需要检测尝试关闭的窗口并对
  • 预压缩的 gzip 在 Chrome 上崩溃,为什么?

    我在我的网站上提供预压缩的 CSS 和 JS 文件 以及 IE6 8 和 FF 与我的 htaccess 文件完美配合 Compressed files RewriteCond HTTP Accept Encoding gzip AddEn
  • 将库从 Java 移植到 Python

    我即将将一个小型库从 Java 移植到 Python 并需要一些建议 小型 几千行代码 我研究了一点 Java 代码 并注意到两种语言中常见的一些设计模式 然而 肯定存在一些仅适用于 Java 的习惯用法 单例等 这些习惯用法在 Pytho
  • 传单测量转换的精确度

    map layerPointToLatLng map latLngToLayerPoint L latLng 40 687 73 9035 结果是 纬度 40 686886382151116 经度 73 90228271484375 不精确
  • 为什么我需要在setup.py中包含子包

    我有一个名为的 python 包mltester其中包含两个子包 actions dialogs 和一个主脚本ml tester py 结构如下
  • Application Insights 显示在实时指标中,但不显示在日志分析中

    So I created a Class library that configures microservices s Application Insights These are the Application Insights con
  • 在 SQL Server 2008 中使用 select where 查找一列上的重复项

    我试图从表中选择一列中有重复项的行 但也根据另一列限制行 它似乎工作不正常 select Id Terms from QueryData where Track Y and Active Y group by Id Terms having
  • 在 Solr 6.6 中配置 shardsWhitelist

    需要帮助在 Solr 6 6 中配置 shardsWhitelist 我在 Solr xml 中有以下行
  • Scrapy Splash不会执行lua脚本

    我遇到了一个问题 我的 Lua 脚本拒绝执行 ScrapyRequest 调用返回的响应似乎是 HTML 正文 而我期待的是文档标题 我假设 Lua 脚本从未被调用 因为它似乎对响应没有明显影响 我已经翻阅了很多文档 但似乎不太明白这里缺少
  • 如何使用 React (Rails) 迭代数组

    我刚刚开始学习 React 我正在尝试找出如何找到我正在寻找的特定值 就像 Ruby 中有each do 方法并且可以迭代数组一样 我正在尝试使用 React 来做到这一点 class Gallery extends React Compo
  • 从 JSON 对象中的字节数组获取图像到 Android 应用程序

    这是我的情况 我的服务器上运行着一个 RESTful WCF 服务 该服务旨在从数据库中获取有关人员的各种类型的数据 并使该数据可作为单个 JSON 对象使用 效果很好 编辑 还有另一个服务在服务器上的文件系统中维护图像缓存 当请求发送到
  • Delphi:通过一个套接字多线程发送数据

    有人可以告诉我如何通过多线程中的一个连接发送和接收数据吗 该模型如下所示 我所知道的是 如果所有三个客户端同时发送数据 客户端 X 将收到所有接收到的数据的合并 并且 客户端 X 无法分离该数据来识别哪一部分来自哪个客户端 德尔福2010
  • 如何在android中使用相机检查图像是在纵向模式还是横向模式下捕获的?

    我正在创建一个打开照片库的应用程序 通过从图库中选择该照片 照片将显示在另一个活动中 我的问题是 我以纵向模式拍摄的照片在显示后会旋转 但我在横向模式下拍摄的照片将正确显示 这就是为什么 我必须使用 Android 中的相机检查图像是在纵向