/**
* 压缩到 256kb
*
* @param bitmap
* @return
*/
private Bitmap ImageCompressL(Bitmap bitmap) {
double targetwidth = Math.sqrt(256 * 1024);
if (bitmap.getWidth() > targetwidth || bitmap.getHeight() > targetwidth) {
// 创建操作图片用的matrix对象
Matrix matrix = new Matrix();
// 计算宽高缩放率
double x = Math.max(targetwidth / bitmap.getWidth(), targetwidth
/ bitmap.getHeight());
// 缩放图片动作
matrix.postScale((float) x, (float) x);
bitmap = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(),
bitmap.getHeight(), matrix, true);
}
return bitmap;
}
/**
* 质量压缩方法
*
* @param image
* @return
*/
public static Bitmap compressImage(Bitmap image) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
image.compress(Bitmap.CompressFormat.JPEG, 100, baos);// 质量压缩方法,这里100表示不压缩,把压缩后的数据存放到baos中
int options = 90;
while (baos.toByteArray().length / 1024 > 100) { // 循环判断如果压缩后图片是否大于100kb,大于继续压缩
baos.reset(); // 重置baos即清空baos
image.compress(Bitmap.CompressFormat.JPEG, options, baos);// 这里压缩options%,把压缩后的数据存放到baos中
options -= 10;// 每次都减少10
}
ByteArrayInputStream isBm = new ByteArrayInputStream(baos.toByteArray());// 把压缩后的数据baos存放到ByteArrayInputStream中
return BitmapFactory.decodeStream(isBm, null, null);
}
BluetoothAdapter myDevice = BluetoothAdapter.getDefaultAdapter();