如何在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中使用相机检查图像是在纵向模式还是横向模式下捕获的? 的相关文章

  • 使用 google Directions API 的地图视图绘制方向 - 解码折线

    我正在尝试使用 Google 方向 API 在我的地图视图上显示方向 但我在从 JSON 响应获取数据时遇到困难 我可以获得 级别 和 点 字符串 但无法弄清楚如何将它们解码为地图上的点 任何帮助将非常感激 我有一个类可以为您解码它们 添加
  • Android:使用 OAuth 访问 google 任务时出现问题

    由于 google 任务没有公共 api 我想编写解决方法并像浏览器一样请求数据 然后解析结果以进一步显示 为了访问数据 我使用 google 实现了 OAuth 身份验证来访问此 url https mail google com htt
  • ffmpeg视频已压缩但无法在浏览器中播放

    我已经集成了ffmpeg4android lib 视频压缩工作正常 但视频无法在除 safari 浏览器之外的浏览器中播放 上传到服务器后 我使用了以下命令 ffmpeg y i
  • 播放 SoundCloud 曲目

    我可以在 Android 应用程序中播放 SoundCloud 中的曲目吗 我正在尝试这段代码 但它不起作用 String res https api soundcloud com tracks 84973999 stream client
  • 调试:在 Android 1.0 中找不到文件

    今天我更新到 Android Studio v 1 0 在尝试编译任何项目时出现以下错误 app build intermediates classes debug 找不到文件 问题是在更新之前我没有任何问题 这是我实际尝试编译的代码 构建
  • Android在排序列表时忽略大小写

    我有一个名为路径的列表 我目前正在使用以下代码对字符串进行排序 java util Collections sort path 这工作正常 它对我的 列表进行排序 但是它以不同的方式处理第一个字母的情况 即它用大写字母对列表进行排序 然后用
  • Android 自定义布局 - onDraw() 永远不会被调用

    public class MainActivity extends Activity Override public void onCreate Bundle savedInstanceState super onCreate savedI
  • 如何为发布而不是调试创建密钥库?扑

    我按照使用此网站部署 flutter 的步骤进行操作https flutter io android release https flutter io android release 当我运行 flutter build apk 时出现此错
  • AudioTrack、SoundPool 或 MediaPlayer,我应该使用哪个?

    如果我需要能够 播放多个音频文件 具有不同的持续时间 例如 5 到 30 秒 独立设置右 左声道的音量 应用声音效果 如混响 失真 那么 我应该使用哪个 API 另外 我在 AudioTrack API 上找不到太多文档 有谁知道在哪里可以
  • 如何在手机缓存中保存用户名和密码

    我有一个用户登录应用程序 它需要用户的电子邮件和密码 我想将电子邮件和密码保存在手机缓存中 以便用户不必再次输入 有什么办法可以将数据保存在Android缓存中吗 我认为你需要使用SharedPreference用于在设备中使用应用程序时保
  • 如何检查用户在EditText中输入自己的电话号码?

    用户将在我的 Android 应用程序的注册页面上的编辑文本中输入手机号码 如何检查用户输入的是他 她的手机号码而不是其他人的 我试过这个 TelephonyManager tMgr TelephonyManager mAppContext
  • 如何在 Android 模块中使用 FirebaseAuth

    我正在开发一个聊天库 我想在其中显示登录用户的对话 制作该库的原因是我想将其集成到多个项目中 我现在面临的问题是FirebaseAuth表示用户尚未登录 FirebaseAuth getInstance mFirebaseApp getCu
  • 如何在TableLayout中创建三列

    我正在开发一个使用的屏幕TableLayout 在这里我可以轻松创建两列 但我怎样才能创建三列呢 这里有一个例子
  • 菜单在片段的 onCreateOptionsMenu 处多次膨胀调用

    我使用 Fragments 当我切换到嵌套 Fragment 时 它实现了public void onCreateOptionsMenu Menu menu MenuInflater inflater 当我到达该嵌套片段时 我的菜单会多次膨
  • Android FragmentTransaction 自定义动画(未知动画师名称:Translate)

    我正在尝试让自定义动画与我的片段一起使用 我已按照在线教程进行操作 但出现以下错误 java lang RuntimeException 未知的动画师名称 翻译 动画的 XML 如下
  • 按钮 - 单击时更改背景颜色

    我的活动中有 8 个按钮 我正在寻找的是 按钮具有默认背景 单击按钮时 背景颜色应更改为其他颜色 这部分非常简单 但是 当我单击任何其他按钮时 第一个按钮的背景颜色应该变回默认颜色 我知道这将使用 选择器状态 来完成 但我不太确定如何实现它
  • 如何在 Android 中使用 C# 生成的 RSA 公钥?

    我想在无法假定 HTTPS 可用的情况下确保 Android 应用程序和 C ASP NET 服务器之间的消息隐私 我想使用 RSA 来加密 Android 设备首次联系服务器时传输的对称密钥 RSA密钥对已在服务器上生成 私钥保存在服务器
  • Android 中循环事件的星期几和时间选择器

    我想创建一个控件 允许用户在我的 Android 活动中选择一周中的某一天 星期一 和一天中的某个时间 下午 1 00 找不到任何关于此的好帖子 好吧 我想我已经明白了 我只是不喜欢这个解决方案 因为我在一周中的某一天使用的微调器与时间选择
  • 使用 JobScheduler API 进行位置更新

    下面是我使用 FireBaseJobDispatcher 启动作业的演示代码 public class MainActivity extends AppCompatActivity Override protected void onCre
  • Android 中带有组的列表视图

    我有一个列表视图 每行都有一些日期和文本 我可以像 iPhone 中那样将这个 listView 分组 组之间有标题吗 在 android 中是否可能 请帮忙 即 我需要在 Listview 行之间有标题栏 以便如果我使用日期对其进行分组

随机推荐

  • 在 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 中的相机检查图像是在纵向