就像新浪微博一样,可以选择上传图片质量(高中低),对图片进行压缩改变文件大小,实现上传时节省流量。
解决方案 »
- android asp.net webservice 之间上传大文件:比如视频有谁知道怎么做吗
- android 随机数生成后不能比较
- Android4.1.1源码编译,jar包冲突问题!!!
- 怎么让linearlayout在动态添加图片显示的时候,始终只显示五个,每次添加图片后,自动水平移动,屏幕中间值显示五个图片。
- json解析
- android端如何实现数据同步问题?求思路、方法
- 如何获取UserManager?
- query方法取不到数据怎么办?
- Android 自定义Dialog 显示不显示问题??
- 帧布局 按钮事件求教
- 关于在eclipse中导入android程序,NDK报错
- 关于Activity销毁问题
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自带库里中唯一可以缩放和压缩的图片方法.
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;
}
这个base64 是什么类?android里面没有该类,这时您自己写的吗?
另外返回的string什么东东?
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))
20M的没压过,压过14M的png图片到Jpeg格式