zoukankan      html  css  js  c++  java
  • Android图片与旋转

    拍照后的照片有时被系统旋转,纠正过程例如以下:

    1.先读取图片文件被旋转的角度:

    /**
    	 * 通过ExifInterface类读取图片文件的被旋转角度
    	 * @param path : 图片文件的路径
    	 * @return 图片文件的被旋转角度
    	 */
    	public static int readPicDegree(String path) {
    		int degree = 0;
    
    		// 读取图片文件信息的类ExifInterface
    		ExifInterface exif = null;
    		try {
    			exif = new ExifInterface(path);
    		} catch (IOException e) {
    			// TODO Auto-generated catch block
    			e.printStackTrace();
    		}
    
    		if (exif != null) {
    			int orientation = exif.getAttributeInt(
    					ExifInterface.TAG_ORIENTATION,
    					ExifInterface.ORIENTATION_NORMAL);
    			switch (orientation) {
    			case ExifInterface.ORIENTATION_ROTATE_90:
    				degree = 90;
    				break;
    
    			case ExifInterface.ORIENTATION_ROTATE_180:
    				degree = 180;
    				break;
    
    			case ExifInterface.ORIENTATION_ROTATE_270:
    				degree = 270;
    				break;
    			}
    		}
    
    		return degree;
    	}

    2.再将上述角度作为參数,传递给以下函数纠正:

    	/**
    	 * 将图片纠正到正确方向
    	 * 
    	 * @param degree : 图片被系统旋转的角度
    	 * @param bitmap : 需纠正方向的图片
    	 * @return 纠向后的图片
    	 */
    	public static Bitmap rotateBitmap(int degree, Bitmap bitmap) {
    		Matrix matrix = new Matrix();
    		matrix.postRotate(degree);
    
    		Bitmap bm = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
    				bitmap.getHeight(), matrix, true);
    		return bm;
    	}


  • 相关阅读:
    mysql相关笔记
    qt杂项
    rpm离线安装整理
    linux fopen个数限制的问题(文件描述符限制)
    解决free():invalid pointer:0x00000000000000155455 ****的问题。
    linux c获取系统时间戳
    ubuntu QT Creater 安装
    LinkedHashMap如何保证顺序性
    HashMap原理(二) 扩容机制及存取原理
    HashMap原理(一) 概念和底层架构
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4223178.html
Copyright © 2011-2022 走看看