今天测试了下,Bitmap使用ARGB_8888与RGB_565压缩保存图片的大小一样,可能RGB_565仅仅节省内存,而输出图片文件时则严格按照JPEG格式规范写入,而JPEG格式本身就没有透明度量。
Options opts=new Options();
opts.inPreferredConfig=Config.ARGB_8888;
String path="/sdcard/test.png";
Bitmap bm1=BitmapFactory.decodeFile(path, opts);
FileOutputStream out1=new FileOutputStream("/sdcard/bm1.jpg");
bm1.compress(CompressFormat.JPEG, 80, out1);
Options opts2 = new Options();
opts2.inPreferredConfig=Config.RGB_565;
Bitmap bm2=BitmapFactory.decodeFile(path, opts2);
FileOutputStream out2=new FileOutputStream("/sdcard/bm2.jpg");
bm2.compress(CompressFormat.JPEG, 80, out2);
Log.e("jemen","bm1 byte="+bm1.getByteCount()+",bm2 byte="+bm2.getByteCount());