0

当我从相机上传图像时,我从画廊和相机中拍摄图像,它会丢失质量,但画廊图像是实际质量

从相机 在此处输入图像描述

从画廊 在此处输入图像描述

这是我从相机和画廊上传图像的代码

从凸轮获取图像

    Intent in = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
 File out = Environment.getExternalStorageDirectory();
 String fileName=GetFileName().replace('.', ' ')+".png";
 out = new File(out, fileName); 
in.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(out));
 startActivityForResult(in, cameraIdNotSdCard);

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
//from camera
    wb.loadUrl(sendUrl);

        if (requestCode == cameraIdNotSdCard) {
            if (data != null && resultCode == RESULT_OK ) {
                bm = (Bitmap) data.getExtras().get("data");

                int width = 350;
                int height = 400;
                if (HomePage.permistionArray.length > 4) {

                    width = Integer.valueOf(HomePage.permistionArray[3]);
                    height = Integer.valueOf(HomePage.permistionArray[4]);
                }

                // Log.d("ddddddddddddd", width+":"+height);

                Bitmap resizeBitmap = Bitmap.createScaledBitmap(bm, width,
                        height, true);

                    ByteArrayOutputStream boas = new ByteArrayOutputStream();
                // bm.compress(Bitmap.CompressFormat.PNG, 100, boas);

                resizeBitmap.compress(Bitmap.CompressFormat.JPEG  ,100, boas);

                byte[] b = boas.toByteArray();
                imageS = Base64.encodeToString(b, 0);

                // call custom class which class web service in background which
                // save image ..
                new imageSaveClass(getApplicationContext()).execute();

            }
        }
        // form gallery result
           if (requestCode == galleryRsultCode && resultCode == RESULT_OK
                    && data != null) {

            Uri selectedImage = data.getData();


            String[] filePathColum = { MediaStore.Images.Media.DATA };

            Cursor cursor = getContentResolver().query(selectedImage,
                    filePathColum, null, null, null);
            cursor.moveToFirst();

            int columnIndex = cursor.getColumnIndex(filePathColum[0]);

            String picturePath = cursor.getString(columnIndex);

            Bitmap myBitmap = BitmapFactory
                    .decodeFile(picturePath);
            if(myBitmap!=null)
            {
                int width = 350;
                int height = 400;
                if (HomePage.permistionArray.length > 4) {

                    width = Integer.valueOf(HomePage.permistionArray[3]);
                    height = Integer.valueOf(HomePage.permistionArray[4]);
                } 

                // Log.d("ddddddddddddd", width+":"+height);

                Bitmap resizeBitmap = Bitmap.createScaledBitmap(myBitmap, width,
                        height, true);

                ByteArrayOutputStream boas = new ByteArrayOutputStream();
                // bm.compress(Bitmap.CompressFormat.PNG, 100, boas);

                resizeBitmap.compress(Bitmap.CompressFormat.PNG, 100, boas);

                byte[] b = boas.toByteArray();
                imageS = Base64.encodeToString(b, 0);

                // call custom class which class web service in background which
                // save image ..
                new imageSaveClass(getApplicationContext()).execute();
            }

        }

当我从相机上传图像时,我从画廊和相机中拍摄图像,它会丢失质量,但画廊图像是实际质量

我如何提高相机的质量

4

1 回答 1

0

尝试更改压缩格式。

您正在使用相机:

 resizeBitmap.compress(Bitmap.CompressFormat.JPEG  ,100, boas);

对于画廊:

 resizeBitmap.compress(Bitmap.CompressFormat.PNG ,100, boas);

也读这个

于 2013-11-11T12:08:51.800 回答