当前位置: 首页 > 知识库问答 >
问题:

在Android中从内存中保存和读取位图/图像

云星波
2023-03-14

谁能指导我怎么做这件事吗?

我是一个新的android所以请,如果我能有一个详细的程序,我会很感激。

共有1个答案

翟俊
2023-03-14

使用下面的代码将图像保存到内部目录。

private String saveToInternalStorage(Bitmap bitmapImage){
        ContextWrapper cw = new ContextWrapper(getApplicationContext());
         // path to /data/data/yourapp/app_data/imageDir
        File directory = cw.getDir("imageDir", Context.MODE_PRIVATE);
        // Create imageDir
        File mypath=new File(directory,"profile.jpg");

        FileOutputStream fos = null;
        try {           
            fos = new FileOutputStream(mypath);
       // Use the compress method on the BitMap object to write image to the OutputStream
            bitmapImage.compress(Bitmap.CompressFormat.PNG, 100, fos);
        } catch (Exception e) {
              e.printStackTrace();
        } finally {
            try {
              fos.close();
            } catch (IOException e) {
              e.printStackTrace();
            }
        } 
        return directory.getAbsolutePath();
    }

说明:

1.将使用给定的名称创建目录。Javadocs用于告诉它将在哪里创建目录。

private void loadImageFromStorage(String path)
{

    try {
        File f=new File(path, "profile.jpg");
        Bitmap b = BitmapFactory.decodeStream(new FileInputStream(f));
            ImageView img=(ImageView)findViewById(R.id.imgPicker);
        img.setImageBitmap(b);
    } 
    catch (FileNotFoundException e) 
    {
        e.printStackTrace();
    }

}
 类似资料:
  • 我正在从相机中保存一个处于横向模式的图像。所以它被保存在横向模式下,然后我在它上面应用一个覆盖层,它也是在横向模式下。我想旋转那个图像,然后保存。例如,如果我有这个 我想顺时针旋转90度一次,这样做,并将其保存到SD卡: 如何做到这一点?

  • 如果我在内部存储中保存一个名为“picture.jpg”的位图,然后再执行一些步骤,我也保存另一个名为“picture.jpg”的位图,然后会发生什么?第二个位图会覆盖第一个位图,还是有两个位图同名?

  • 我一直在使用系统保存截图的方式将位图保存到磁盘和图库中。这在Android4.2及之前版本中有效,但在Android3.3中无效。 相关代码: 此处为完整代码。 然而,在4.3(新的Nexus 7)中,我在第二行得到了FileNotFoundException。我在网站上看不到与此相关的4.3中的任何更改。 那么,将图像保存到磁盘和图库的正确方法是什么呢? 已验证: 使用此方法装载存储 image

  • 问题内容: 我正在显示一组图像,然后,如果用户希望,可以将图像保存到SD卡。我需要将其保存到外部存储的帮助。有人可以帮我这个忙吗? 网格视图: ImageAdapter: 问题答案: 嗨,我还没有使用过作为应用程序一部分提供的代码,但是我确实使用它来调试了其中一个应用程序在运行时生成的位图。 使用此代码,只要您有位图,就只需要此+清单权限 希望能帮到您 杰森

  • 这里我们使用工具为Python2.7,使用库numpy,opencv,从图片的导入到显示及保存,同时将图片变为灰度图 1、读入图像 cv2.imread(文件名,标记) 第一个参数图像应该在工作目录中,或者应该给出完整的图像路径。 第二个参数是一个标志,指定应读取图像的方式。 cv2.IMREAD_COLOR:加载彩色图像。任何形象的透明度将被忽略。这是默认的标志。 cv2.IMREAD_GRAY

  • 我在继续我的游戏超过8次后,我得到了OutOfMemory错误,因为堆逐渐填充。在使用MAT分析我的游戏堆时,我知道以下2个原因: 关键词Android.Graphics.Bitmap Byte[] 关键词java.lang.Object[]Android.content.res.resources 请提出解决方案