如何在Android中存储较小的图像?

时间:2012-01-13 07:11:53

标签: android image camera

我正在尝试使用相机开发应用程序。我已经成功将图像保存在SD卡中,但图像将被发送到服务器,因此我需要将图像缩小。我现在的大小是2.3 MB。有没有办法让图像更小?

private PictureCallback mPicture = new PictureCallback() 
{
    public void onPictureTaken(byte[] data, Camera camera) {

        File pictureFile = getOutputMediaFile(MEDIA_TYPE_IMAGE);
        if (pictureFile == null){
            return;
        }

        try {
            FileOutputStream fos = new FileOutputStream(pictureFile);
            fos.write(data);
            fos.close();
        } catch (FileNotFoundException e) {
            Log.d(TAG, "File not found: " + e.getMessage());
        } catch (IOException e) {
            Log.d(TAG, "Error accessing file: " + e.getMessage());
        }
        camera.startPreview();
    }
};

2 个答案:

答案 0 :(得分:0)

您可以使用此

压缩位图图像(如果它存储在Bitmap中)

preview_bitmap.compress(CompressFormat.PNG,90,out);

答案 1 :(得分:0)

您有两种选择:

  1. 调整图像大小。通过将分辨率降低2倍,可以获得最佳效果。请参阅此示例:https://stackoverflow.com/a/823966/248432

  2. 进一步压缩图像(正如Ravi Kumar已经回答的那样)。