我有一个应用程序捕获图像,显示它,然后将其发送到Web服务器(使用Web服务)。问题是图像质量非常低(约100px),我无法找到原因。
这是我的代码:
打开相机的按钮:
cameraBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAMERA_REQUEST);
}
});
显示图片:
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == CAMERA_REQUEST && resultCode == Activity.RESULT_OK) {
Bitmap bitmap = (Bitmap) data.getExtras().get("data");
tmpImg.setImageBitmap(bitmap);
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] imageInByte = baos.toByteArray();
dialog = ProgressDialog.show(MainActivity.this, "", "Uploading file...", true);
sendFile(imageInByte); // send the file to server
}
}
有什么想法吗?
答案 0 :(得分:0)
bitmap.compress(Bitmap.CompressFormat.PNG,100,baos);做了质量问题。你必须看看有损压缩技术才能获得图像质量。请参阅以下链接:https://developer.android.com/topic/performance/network-xfer.html