El derecho a obtener ancho de la imagen de teléfono local y la altura

Obtener ancho de la imagen de teléfono local y la altura, que suelen utilizar el siguiente método:

 finales opciones BitmapFactory.Options = nuevos BitmapFactory.Options (); 
 options.inJustDecodeBounds = verdadero ; 
 BitmapFactory.decodeFile (rutaArchivo, opciones); 
int width = options.outWidth;
int height = options.outHeight;

Sin embargo, en algunos modelos de teléfonos móviles como Samsung, después de tomar la imagen puede ser girada, como rotados 90 grados, si los valores de anchura y altura por encima de código se pueden obtener opuesto, entonces usted necesita para obtener el ángulo de rotación de la imagen, a continuación, adquirir el ángulo de rotación de la anchura de la imagen y la altura, directamente en el código:

    // 获取手机本地图片的宽度和高度
    privada Par <Integer, Integer> getImageWidthHeight (String rutaArchivo) {
         finales BitmapFactory.Options opciones = nuevos BitmapFactory.Options (); 
        options.inJustDecodeBounds = verdadero ; 
        BitmapFactory.decodeFile (rutaArchivo, opciones); 
        int width = options.outWidth;
        int height = options.outHeight;
        int orientación = ExifInterface.ORIENTATION_NORMAL; 
        try {  
            ExifInterface exifInterface = nuevo ExifInterface (filePath);
            orientación = exifInterface.getAttributeInt (ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); 
        }
        catch (IOException e) { 
            e.printStackTrace (); 
        } 
        Interruptor (orientación) { 
            caso ExifInterface.ORIENTATION_ROTATE_90: 
            caso ExifInterface.ORIENTATION_ROTATE_270: 
                width = options.outHeight; 
                height = options.outWidth; 
                descanso; 
        } 
        Devolver  nuevo par <> (anchura, altura); 
    }

EXIF: intercambiable Image File Format (Inglés: formato de archivo de imagen intercambiable, la abreviatura oficial Exif), el conjunto está diseñado para la cámara digital de fotos, fotos digitales se pueden grabar información de atributos y los datos de disparo, sólo las imágenes en formato JPEG llevarán datos EXIF, como PNG, imágenes WebP no tendrían esos datos.

En Android, la información puede ser adquirida como tiempo de exposición de la imagen, ancho de la imagen, altura de la imagen, equipos de marca, información del ángulo de rotación a través de la clase ExifInterface. Se utiliza como imagen de demostración, ancho de la imagen y la altura es de 3024 * 4032, autocomprobación

 

Supongo que te gusta

Origin www.cnblogs.com/rainboy2010/p/12557015.html
Recomendado
Clasificación