Преобразуйте изображение в миниатюру и сохраните

В моем приложении для Android я создаю изображение с помощью камеры, для этого я использую API камеры, мне нужно отображать его миниатюры после съемки, и я хочу сохранить их в другой папке. поэтому моим выводом для функции создания эскизов будет путь к изображению, и я ожидаю, что вывод файла будет путем к эскизу. Я просмотрел множество руководств и документации для разработчиков, я нашел много методов

eg : ThumbnailUtils,..

но все эти методы возвращают либо объект Bitmap, либо массивы байтов. как лучше всего сохранить миниатюру изображения.

public void manageImage() {
    /*
       other things
   */
      Model.addThumnailPath(createThumnail(imageFile));
 }

public String createThumnail(File imageFile){
    // operations

  return thumnailPath;
}

person droidev    schedule 24.08.2015    source источник
comment
Похоже, вам нужно найти как сохранить растровое изображение в файл.   -  person natario    schedule 24.08.2015
comment
Есть ли другой способ ?   -  person droidev    schedule 24.08.2015


Ответы (1)


Лучший способ создать миниатюру — использовать

  • ThumbnailUtils
  • изобретите велосипед и выполните описанные ниже действия.
    1. Рассчитайте максимально возможный inSampleSize, при котором размер изображения будет больше заданного.
    2. Загрузите изображение с помощью BitmapFactory.decodeFile(файл, параметры), передав inSampleSize в качестве параметра.
    3. Измените размер до нужного размера с помощью Bitmap.createScaledBitmap().

Теперь у вас готово растровое изображение, и вы можете сохранить его в любом месте, используя следующий код.

Bitmap thumbnail;
File thumbnailFile = ...;
FileOutputStream fos = new FileOutputStream(thumbnailFile);
thumbnail.compress(Bitmap.CompressFormat.JPEG, 90, fos);
fos.flush();
fos.close();

Вот и все :)

person Neeraj Kumar    schedule 24.08.2015