網上找的挺不錯的圖片壓縮代碼

來源:互聯網
上載者:User

標籤:test   encode   attribute   read   oat   span   phi   拍照   res   

package test.yc.com.fragmentdemo;import android.content.Context;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.Matrix;import android.media.ExifInterface;import android.util.Base64;import java.io.ByteArrayOutputStream;import java.io.File;import java.io.FileNotFoundException;import java.io.FileOutputStream;import java.io.IOException;/** * Created by uctimes on 2016/10/22. */public class BitMapUtils {    //計算圖片的縮放值    public static int calculateInSampleSize(BitmapFactory.Options options, int reqWidth, int reqHeight) {        final int height = options.outHeight;        final int width = options.outWidth;        int inSampleSize = 1;        if (height > reqHeight || width > reqWidth) {            final int heightRatio = Math.round((float) height/ (float) reqHeight);            final int widthRatio = Math.round((float) width / (float) reqWidth);            inSampleSize = heightRatio < widthRatio ? heightRatio : widthRatio;        }        return inSampleSize;    }    // 根據路徑獲得圖片並壓縮,返回bitmap用於顯示    public static Bitmap getSmallBitmap(String filePath) {        final BitmapFactory.Options options = new BitmapFactory.Options();        options.inJustDecodeBounds = true;        BitmapFactory.decodeFile(filePath, options);        // Calculate inSampleSize        options.inSampleSize = calculateInSampleSize(options, 480, 800);        // Decode bitmap with inSampleSize set        options.inJustDecodeBounds = false;        return BitmapFactory.decodeFile(filePath, options);    }    //把bitmap轉換成String    public static String bitmapToString(String filePath) {        Bitmap bm = getSmallBitmap(filePath);        ByteArrayOutputStream baos = new ByteArrayOutputStream();        bm.compress(Bitmap.CompressFormat.JPEG, 40, baos);        byte[] b = baos.toByteArray();        return Base64.encodeToString(b, Base64.DEFAULT);    }//    /*//壓縮圖片,處理某些手機拍照角度旋轉的問題//*///    public static String compressImage(Context context, String filePath, String fileName, int q) throws FileNotFoundException {////        Bitmap bm = getSmallBitmap(filePath);////        int degree = readPictureDegree(filePath);////        if(degree!=0){//旋轉照片角度//            bm=rotateBitmap(bm,degree);//        }////        File imageDir = SDCardUtils.getImageDir(context);////        File outputFile=new File(imageDir,fileName);////        FileOutputStream out = new FileOutputStream(outputFile);////        bm.compress(Bitmap.CompressFormat.JPEG, q, out);////        return outputFile.getPath();//    }////    //判斷照片角度//    public static int readPictureDegree(String path) {//        int degree = 0;//        try {//            ExifInterface exifInterface = new ExifInterface(path);//            int orientation = exifInterface.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;//            }//        } catch (IOException e) {//            e.printStackTrace();//        }//        return degree;//    }////旋轉照片//    public static Bitmap rotateBitmap(Bitmap bitmap,int degress) {//        if (bitmap != null) {//            Matrix m = new Matrix();//            m.postRotate(degress);//            bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),//                    bitmap.getHeight(), m, true);//            return bitmap;//        }//        return bitmap;//    }}

 

網上找的挺不錯的圖片壓縮代碼

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.