Android上的低图像质量捕获

时间:2017-09-21 09:07:30

标签: java android image

我有一个应用程序捕获图像,显示它,然后将其发送到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
    }
}

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

bitmap.compress(Bitmap.CompressFormat.PNG,100,baos);做了质量问题。你必须看看有损压缩技术才能获得图像质量。请参阅以下链接:https://developer.android.com/topic/performance/network-xfer.html