【问题标题】:When taking picture with camera and sending to server-side, losing picture quality用相机拍照并发送到服务器端时,图像质量下降
【发布时间】:2012-02-29 00:08:02
【问题描述】:

我已经在这个问题上苦苦挣扎了几天,我真的不知道是什么问题。 我的 CameraView 类有以下代码:

Camera.PictureCallback photoCallback = new Camera.PictureCallback() {
    public void onPictureTaken(byte[] imageData, Camera camera) {
        Intent mIntent = new Intent();  
        mIntent.putExtra(GeneralCodes.CREATE_NEW_ACCOUNT_PROFILE_PICTURE, imageData);
        setResult(Activity.RESULT_OK, mIntent);
        finish();
    }
};

然后,我的 Activity 收到了这个结果:

ImageView i = (ImageView) findViewById(R.id.createAccounProfileImage);
Bitmap yourSelectedImage = FileUtilities.createBitmapBasedOnByteImage(data.getByteArrayExtra(GeneralCodes.CREATE_NEW_ACCOUNT_PROFILE_PICTURE), getResources().getDisplayMetrics().density);

finalImage=yourSelectedImage;
            i.setImageBitmap(BitmapUtils.getRoundedCornerBitmap(finalImage, Math.min(finalImage.getWidth(), finalImage.getHeight()), true));        

方法 FileUtilities.createBitmapBasedOnByteImage 唯一真正做的就是调用 BitmapFactory.decodeByteArray()。

然后,我的下一步是将此位图发送到我的服务器:

ByteArrayOutputStream baos = new ByteArrayOutputStream();
    if(finalImage!=null)finalImage.compress(Bitmap.CompressFormat.JPEG, 0, baos);
    byte[] data = baos.toByteArray();

    pairs.add(new BasicNameValuePair("PROFILE_PIC_DATA", Base64.encodeToString(data, Base64.DEFAULT)));     

信息被发送到我的服务器,图像被保存在 CLOB 中。 当我的下一个活动检索到这些数据时:

bitmap = BitmapFactory.decodeStream(createInputStream(Base64.decode(obj.getString("photo_image"), Base64.DEFAULT)));

质量完全搞砸了。就像它是由 0.3mpx 相机拍摄的一样。 我正在使用三星 Galaxy Nexus,所以我相信我的屏幕会让情况变得更糟。这些图像在 CLOB 中大约有 2.7kb 大小......所以我猜数据在发送到我的服务器时会丢失......我不太确定。

有人见过吗?

谢谢, 费利佩

【问题讨论】:

    标签: android android-camera


    【解决方案1】:

    压缩时您将图像质量设置为 0。而是将其设置为更大的东西。请参阅docs。比如:

    if(finalImage!=null)finalImage.compress(Bitmap.CompressFormat.JPEG, 80, baos);
    

    【讨论】:

    • 我认为 0 表示“无压缩”。感谢您帮助我!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多