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;
    	}


  • 相关阅读:
    HDU 1124 Factorial(简单数论)
    29.QT主窗口加widget
    28.开始画面和异形窗口
    27.Qt时钟
    26.QT颜色与布局
    25.QT进度条
    146.正则表达式
    24.qint64转QString 以及获取文件属性
    23.QFile遍历
    22.监视文件
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4223178.html
Copyright © 2011-2022 走看看