那里的数字表示 如果不压缩是100,表示压缩率为0。
如果是70,就表示压缩率是70,表示压缩30%;
所以你的倒数第二句话表示没有压缩。
以下是我压缩的方法,望采纳。
/**
* 图像压缩并保存到本地
* 返回处理过的图片
*
*/
private Bitmap
saveImage(String fileName,Bitmap bit) {
File file = new
File(fileName);
if (!file.exists()) {
try
{
file.createNewFile();
} catch (IOException e)
{
e.printStackTrace();
}
}
try
{
ByteArrayOutputStream stream = new
ByteArrayOutputStream();
bit.compress(CompressFormat.JPEG, 70,
stream);
// 70 是压缩率,表示压缩30%; 如果不压缩是100,表示压缩率为0
FileOutputStream os =
new
FileOutputStream(file);
os.write(stream.toByteArray());
os.close();
return
bit;
} catch (Exception e) {
file = null;
return
null;
}
}
我是想压缩成固定的大小就比如说740*480这样的 那我前面那些操作算什么
这句话是传入要操作的图片和指定的大小;
这两句是获取到图片原有的大小,宽和高;
这几句是计算缩小或者放大的比例。用那个new的宽高和原有图片的相比较,计算出比例,一会好操作。另外这里有个点,如果图片宽比高长就正常比较,否则就倒过来。意思是让这张图片保持是横着的图,就是宽比较长。
这两句话是定义一个操作图片的对象,这个对象主要是用来按照刚才计算的比例来缩放图片。这里定义的是对宽和高缩放的比例。
这句是重新生成一张图片,从原始位图剪切图像,这是一种高级的方式。可以用Matrix(矩阵)来实现旋转等高级方式截图
参数说明:
Bitmap source:要从中截图的原始位图
int x:起始x坐标
int y:起始y坐标
int width:要截的图的宽度
int height:要截的图的宽度
boolean filter:一个枚举类型的配置,可以定义截到的新位图的质量。当进行的不只是平移变换时,filter参数为true可以进行滤波处理,有助于改善新图像质量;flase时,计算机不做过滤处理。
返回值:返回一个剪切好的Bitmap
这句就是上边提到的压缩了。
最后返回字节流。。。
大哥啊,我纯手打的,,,,,,,,快采纳吧。。。。。。。。。
广告 您可能关注的内容 |