/** * 生成縮略圖 * 縮略圖是將原圖等比壓縮,壓縮後寬、高中較小的一個等於198像素 */ private Bitmap getThumb(String path){ final BitmapFactory.Options options = new BitmapFactory.Options(); options.inJustDecodeBounds = true; BitmapFactory.decodeFile(path, options); int reqWidth, reqHeight, width=options.outWidth, height=options.outHeight; if (width > height){ reqWidth = 198; reqHeight = (reqWidth * height)/width; }else{ reqHeight = 198; reqWidth = (width * reqHeight)/height; } int inSampleSize = 1; if (height > reqHeight || width > reqWidth) { final int halfHeight = height / 2; final int halfWidth = width / 2; while ((halfHeight / inSampleSize) > reqHeight && (halfWidth / inSampleSize) > reqWidth) { inSampleSize *= 2; } } try{ options.inSampleSize = inSampleSize; options.inJustDecodeBounds = false; Matrix mat = new Matrix(); Bitmap bitmap = BitmapFactory.decodeFile(path, options); ExifInterface ei = new ExifInterface(path); int orientation = ei.getAttributeInt(ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_NORMAL); switch(orientation) { case ExifInterface.ORIENTATION_ROTATE_90: mat.postRotate(90); break; case ExifInterface.ORIENTATION_ROTATE_180: mat.postRotate(180); break; } // Log.e("test","bitmap.getWidth():"+bitmap.getWidth()+",,bitmap.getHeight():"+bitmap.getHeight()); return Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), mat, true); }catch (IOException e){ return null; } }
安卓 bitmap生成縮略圖
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.