Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/208.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:将位图保存到库_Android_Bitmap_Save - Fatal编程技术网

Android:将位图保存到库

Android:将位图保存到库,android,bitmap,save,Android,Bitmap,Save,我已经创建了一个应用程序,它可以循环两个位图,并将像素数据存储到二维数组compare1[]]和compare2[]] 我相信我的代码在某种程度上是有效的。它看起来像是保存了位图,但当我稍后去画廊时,它不在那里。任何想法都将不胜感激;以下是我的代码示例: public void getPixels(int[][] compare2,int[][]compare1, int x) { Bitmap difference = Bitmap.createBitmap(width, heigh

我已经创建了一个应用程序,它可以循环两个位图,并将像素数据存储到二维数组compare1[]]和compare2[]]

我相信我的代码在某种程度上是有效的。它看起来像是保存了位图,但当我稍后去画廊时,它不在那里。任何想法都将不胜感激;以下是我的代码示例:

public void getPixels(int[][] compare2,int[][]compare1, int x) 
{
    Bitmap difference = Bitmap.createBitmap(width, height, Config.ARGB_8888);

    for(int i = 0; i<width-1; i++)
    {
        for(int j=0; j<height-1; j++)
        {

            int mColor = BIT.get(x).getPixel(i, j);

            int alpha = Color.alpha(mColor);
            int red = Color.red(mColor);                
            int green = Color.green(mColor);
            int blue = Color.blue(mColor);

            int xAvg = ((red+green+blue)/3);

            compare2[i][j] = xAvg;
            if ((compare1[i][j] - compare2[i][j]) < 50)
            {
                difference.setPixel(i, j, -16777216);
                //System.out.println("No Significant Change");

            }
            else
            {
                difference.setPixel(i, j, -1);
                //System.out.println("Change");
            }

        }


    }       
    try {
            String path = Environment.getExternalStorageDirectory().toString();
            OutputStream fOut = null;
            File file = new File(path,"Test.jpg");
            fOut = new FileOutputStream(file);

            difference.compress(Bitmap.CompressFormat.JPEG, 80, fOut);

            fOut.flush();
            fOut.close();
            fOut = null;

    } catch (Exception e) {
           e.printStackTrace();
    }

}

保存图像后,需要调用MediaScanner以使图像显示在库中:

Intent intent = new Intent(Intent.ACTION_MEDIA_MOUNTED, Uri.parse("file://" + Environment.getExternalStorageDirectory());
sendBroadcast(intent);
详细教程:


有关SO的相关问题:

您需要使用bitmap.create创建新位图,然后使用bitmap.compress将其写入file@etienne请向下滚动:@njzk2我不是已经这么做了吗?位图差异=Bitmap.createBitmapwidth,height,Config.ARGB_8888;difference.compressBitmap.CompressFormat.JPEG,80,fOut;是的,对不起,我没看到。不会出现在画廊里吧?然后你可能需要要么把它放在画廊能看到的地方,要么自己把它放在mediastore里