MediaStore.Images.Media снижает качество изображения, сохраняемого в галерее.

Я сохраняю скриншот приложения в галерее через -

//screenshot
private void screenshot()
{
    Uri photo = lomography();
    String photopath = photo.getPath();
    try {
        MediaStore.Images.Media.insertImage(getContentResolver(), photopath, "name" , "desc");
    } catch (FileNotFoundException e) {
        e.printStackTrace();
    }
}

Изображение, хранящееся на фототракте, имеет высокое качество:

введите здесь описание изображения

Но когда я перехожу в галерею и открываю ту же фотографию, это версия с низким качеством JPEG с несколькими артефактами сжатия:

введите здесь описание изображения

Почему Галерея отображает версию в формате JPEG, если исходный файл имеет формат PNG? Как я могу сохранить версию с высоким разрешением в галерее?

Я читал здесь, что хитрость заключается в "Зарегистрировать изображение с помощью ContentResolver::insert'.

Но я использую getContentResolver.


person Bilbo Baggins    schedule 23.07.2013    source источник


Ответы (2)


Чтобы решить эту проблему, откройте описание метода «MediaStore.Images.Media.insertImage», скопируйте и вставьте нужный код в свой собственный класс, а затем, где он сжимает изображение на 50%, измените его на 100%.

person zezba9000    schedule 04.06.2015

Это был ответ. Я имею в виду, что «это» было отсутствующей частью кода.

Вместо «MediaStore.Images.Media.insertImage(getContentResolver()». Я должен был использовать MediaStore.Images.Media.insertImage(this.getContentResolver()).

Задача решена.

person Bilbo Baggins    schedule 23.07.2013
comment
Оба одинаковы, по умолчанию он вызывается в экземпляре this. - person xmen; 31.12.2013
comment
@xmenW.K. Качество изображения было значительно ниже, как у камеры vga. - person Bilbo Baggins; 31.12.2013
comment
Однако отмеченный ответ не является решением, вы вызываете один и тот же метод, независимо от того, используете ли вы this или нет. - person xmen; 31.12.2013
comment
@xmenW.K. добавление «это» неожиданно решило проблему. Думаю, это как-то связано с контекстом. Без этого он создал скриншот качества миниатюры. - person Bilbo Baggins; 01.01.2014
comment
и вы пытались удалить this и проверить снова? - person xmen; 01.01.2014
comment
@xmenW.K. Это вызывало проблемы без этого, и поэтому я написал вопрос. Я нашел решение на форумах Google. - person Bilbo Baggins; 01.01.2014
comment
Источник MediaStore.insertImage показывает, что изображения действительно сильно сжаты: github.com/android/platform_frameworks_base/blob/master/core/ -- качество 50%! - person ; 29.03.2014