Android MediaStore InsertImage довольно медленный - PullRequest
0 голосов
/ 15 апреля 2019

Я перебираю фотографии на Android, обрезаю лица и сохраняю JPEG только с лицом. Этот процесс занимает некоторое время, в основном потому, что функция insertImage занимает до секунды на фотографию:

Bitmap newBitnmap;

            try{
                newBitnmap = Bitmap.createBitmap(myBitmap, a, b, c, d);
            }catch(Exception e1){
                Log.d(TAG, "doInBackground: error: " + e1);
                return "error";
            }



            Log.d(TAG, "doInBackground: after new bitmap");
            try {
                Log.d(TAG, "detectAndCrop: 1");
                fOutputStream = new FileOutputStream(newImageFile);
                Log.d(TAG, "detectAndCrop: 2");
                newBitnmap.compress(Bitmap.CompressFormat.JPEG, 60, fOutputStream);
                Log.d(TAG, "detectAndCrop: 3");
                fOutputStream.flush();
                Log.d(TAG, "doInBackground: 3.1");
                fOutputStream.close();
                Log.d(TAG, "doInBackground: 3.2");
                MediaStore.Images.Media.insertImage(mContext.getContentResolver(), newImageFile.getAbsolutePath(), newImageFile.getName(), newImageFile.getName());

                Log.d(TAG, "detectAndCrop: 4");
            } catch (FileNotFoundException e1) {
                e1.printStackTrace();
            } catch (IOException e3) {
                e3.printStackTrace();

            }

Мне просто интересно, обычно ли это время, чтобы сохранить jpeg на диск в Android, или я что-то не так делаю?

...