就像新浪微博一样,可以选择上传图片质量(高中低),对图片进行压缩改变文件大小,实现上传时节省流量。

解决方案 »

  1.   

    找到了,大家可以参考这个位置:
    http://topic.csdn.net/u/20110121/17/D4CA96B7-A17C-4713-AC81-C587EF66105F.html
    压缩图片质量:   
    bitmap.compress(Bitmap.CompressFormat.JPEG, quality, fos);   
    其中的quality为0~100, 可以压缩图片质量, 不过对于大图必须对图片resize  这个是等比例缩放:
    bitmap = Bitmap.createScaledBitmap(bitmap, width, height, false);这个是截取图片某部分:
    bitmap = Bitmap.createBitmap(bitmap, x, y, width, height);这几个方法都是针对Bitmap的, 不过鉴于Bitmap可以从file中读取, 也可以写入file.  这是我知道Android自带库里中唯一可以缩放和压缩的图片方法.
      

  2.   

    public static String getImageString(String imgFilePath){
       Bitmap mBitmap=BitmapFactory.decodeFile(imgFilePath);
            Matrix matrix = new Matrix();
            matrix.postScale(0.5f, 0.5f);
            Bitmap newBitmap=Bitmap.createBitmap(mBitmap, 0, 0, mBitmap.getWidth(), mBitmap.getHeight(), matrix, true);
            
       ByteArrayOutputStream out=new ByteArrayOutputStream();
       newBitmap.compress(CompressFormat.JPEG, 100, out);
       byte []bytes=out.toByteArray();
       String imageString=Base64.encodeToString(bytes, Base64.DEFAULT);
       return imageString;
       }
      

  3.   


    这个base64  是什么类?android里面没有该类,这时您自己写的吗?
    另外返回的string什么东东?
      

  4.   

    opencv压缩效果更佳Mat mat = Highgui.imread(mImgPath);

    Mat detMat = new Mat();
    Size size = new Size(mat.width()/2, mat.height()/2);
    Imgproc.resize(mat, detMat, size);
    List<Integer> list = new ArrayList<Integer>();
    list.add(Highgui.CV_IMWRITE_JPEG_QUALITY);
    list.add(quality);
    if(Highgui.imwrite("/sdcard/compress_half.jpg", mat, list))
      

  5.   


    20M的没压过,压过14M的png图片到Jpeg格式