zoukankan      html  css  js  c++  java
  • 正确获取手机本地图片的宽度和高度

    获取手机本地图片的宽度和高度,我们通常使用以下方法:

     final BitmapFactory.Options options = new BitmapFactory.Options();
     options.inJustDecodeBounds = true;
     BitmapFactory.decodeFile(filePath, options);
     int width= options.outWidth;
     int height=options.outHeight;

    但是在一些手机机型上如三星手机,拍照后图片可能会进行旋转,如旋转90度,如果采用上面的代码获取的宽高值可能是反的,这时就需要获取图片的旋转角度,然后根据旋转角度来获取图片的宽高,直接上代码:

        //获取手机本地图片的宽度和高度
        private Pair<Integer,Integer> getImageWidthHeight(String filePath) {
            final BitmapFactory.Options options = new BitmapFactory.Options();
            options.inJustDecodeBounds = true;
            BitmapFactory.decodeFile(filePath, options);
            int width= options.outWidth;
            int height=options.outHeight;
            int orientation=ExifInterface.ORIENTATION_NORMAL;
            try {
                ExifInterface exifInterface = new ExifInterface(filePath);
                orientation = exifInterface.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL);
            }
            catch (IOException e) {
                e.printStackTrace();
            }
            switch (orientation) {
                case ExifInterface.ORIENTATION_ROTATE_90:
                case ExifInterface.ORIENTATION_ROTATE_270:
                    width=options.outHeight;
                    height=options.outWidth;
                    break;
            }
            return new Pair<>(width,height);
        }

    EXIF:可交换图像文件格式(英语:Exchangeable image file format,官方简称Exif),是专门为数码相机的照片设定的,可以记录数码照片的属性信息和拍摄数据,只有JPEG格式的图片才会携带exif数据,像PNG,WebP这类的图片就不会有这些数据。

    在Android下,可以通过ExifInterface类来获取图片的信息如曝光时间,图片宽度,图片高度,设备品牌,旋转角度等信息。使用的demo图片如下,图片的宽高为3024*4032,可自行测试

  • 相关阅读:
    AngularJS数据建模(转载)
    Entity Framework Code First ---EF Power Tool 和MySql一起使用遇到的问题
    EF开发程序经常用的几个东西
    jQuery插件---轻量级的弹出窗口wBox
    SQL Server 索引维护sql语句
    windows server2008 r2 下启用 sqlserver 2008的远程连接
    windows2012 r2 提高网速方法
    jQuery validation
    Bootstrap Modal 垂直居中
    shell 循环读取文件及字符串转为数组
  • 原文地址:https://www.cnblogs.com/rainboy2010/p/12557015.html
Copyright © 2011-2022 走看看