【问题标题】:while compressing the image using bitmap (image)saving to the gallery but image failed to load -Android使用位图(图像)压缩图像时保存到图库但图像无法加载-Android
【发布时间】:2018-03-19 09:13:01
【问题描述】:

我正在使用位图。但是在捕获图像后,我试图将图像保存在外部存储中,它变得模糊了。请给我解决方案。 这是我的代码 -

public void saveImageToExternalStorage() {
    String root =Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES).toString();
    File myDir = new File(root + "/saved_images");
    myDir.mkdirs();
    Random generator = new Random();
    int n = 10000;
    n = generator.nextInt(n);
    String fname = "Image-" + n + ".jpg";
    File file1 = new File(myDir, fname);
    if (file1.exists())
        file1.delete();
    try {
        FileOutputStream out = new FileOutputStream(file1);
        finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);
        out.flush();
        out.close();
    }
    catch (Exception e) {
        e.printStackTrace();
    }


    // Tell the media scanner about the new file so that it is
    // immediately available to the user.
    MediaScannerConnection.scanFile(this, new String[] { file1.toString() },                null,
            new MediaScannerConnection.OnScanCompletedListener() {
                public void onScanCompleted(String path, Uri uri) {
                    Log.i("ExternalStorage", "Scanned " + path + ":");
                    Log.i("ExternalStorage", "-> uri=" + uri);
                }
            });

    }
}

【问题讨论】:

  • 什么是blured
  • 压缩图像时,它会保存到图库但无法加载。@greenapps
  • 到画廊? I am trying to save image in External storage ???在你的帖子中,我没有读到任何关于无法加载的信息。你不能写一个更好的帖子吗?什么是模糊的?
  • 我更正了我的帖子。@greenapps
  • logcat 显示什么错误?

标签: android android-camera


【解决方案1】:

您需要通知画廊添加了带有路径的新图像,或者我应该说您必须更新 MediaStore 以便它将作为新图像添加到 Media Store 中

private void addImageGallery( File file ) {
    ContentValues values = new ContentValues();
    values.put(MediaStore.Images.Media.DATA, file.getAbsolutePath());
    values.put(MediaStore.Images.Media.MIME_TYPE, "image/jpeg"); // setar isso
    getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
}

【讨论】:

  • 这样做你也可以在图库或照片应用中看到图片
  • @AdeelTurk 是对的。您的存储加载问题可能与文件的元数据有关。我认为这是有用的答案
【解决方案2】:

可能是压缩错误。尝试修改

的参数
finalBitmap.compress(Bitmap.CompressFormat.JPEG, 90, out);

例如:

finalBitmap.compress(Bitmap.CompressFormat.JPEG, 100, out);

如果不符合您的要求,也可以将其保存为无损 PNG 格式:

finalBitmap.compress(Bitmap.CompressFormat.PNG, 100, out);

来源: https://developer.android.com/reference/android/graphics/Bitmap.html#compress(android.graphics.Bitmap.CompressFormat, int, java.io.OutputStream)

【讨论】:

  • 图像保存在图库中,但未加载。它给出“加载失败”。 @muminers
  • 这是正确的答案:图片模糊 = 核心压缩。你可能混淆了一些参数
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-28
  • 2016-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多