我正在尝试将图像上传到服务器而不进行压缩,以保持完整的质量。
我找到了以下方法:
compress(Bitmap.CompressFormat.JPEG, 100, bao);
但在我的情况下它不起作用。原始图像是 2 MB,但在服务器上它只有 60 KB。
图像捕获使用以下代码
Intent i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(i,camdata);
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if(resultCode==RESULT_OK) {
Bundle bn=data.getExtras();
bm=(Bitmap)bn.get("data");
imageview.setImageBitmap(bm);
imageview.setClickable(false);
ByteArrayOutputStream bao = new ByteArrayOutputStream();
BitmapFactory.Options options=new BitmapFactory.Options();
options.inSampleSize=6;
final float scale=getResources().getDisplayMetrics().density;
Display dis=getWindowManager().getDefaultDisplay();
int width=dis.getWidth();
scalebmp=Bitmap.createScaledBitmap(bm,400,300, true);
scalebmp.compress(Bitmap.CompressFormat.JPEG, 100, bao);
byte [] ba = bao.toByteArray();
String imgstr=Base64.encodeToString(ba,Base64.DEFAULT);
}
}