Android – как получить или установить (распечатать) DPI (точек на дюйм) файла JPEG при загрузке или сохранении его прогрAndroid

Форум для тех, кто программирует под Android
Ответить Пред. темаСлед. тема
Anonymous
 Android – как получить или установить (распечатать) DPI (точек на дюйм) файла JPEG при загрузке или сохранении его прогр

Сообщение Anonymous »

У меня есть приложение, разработанное для Android версии 4.0 и выше. (Приложение не поддерживает версии Android ниже 4.0 [Ice Cream Sandwich]).

Вопрос связан с (печатью) DPI различных изображений (например, JPEG). или PNG).

Этот вопрос НЕ касается разрешения экрана или размеров различных устройств Android. Это также НЕ связано с отображением растрового изображения на устройстве в размере экрана.

Я использую следующий код для загрузки файла изображения в «растровом изображении». Затем я обрезал его и сохранил в другой файл в формате JPEG с помощью jpegCompression. Мне удалось сделать это с помощью следующего кода, но я не могу получить DPI загруженного или установить DPI сохраненного файла изображения.

Поэтому у меня есть два вопроса. .

1) Как я могу получить DPI (для печати) из файла JPEG после или во время его загрузки в «Растровое изображение»?

2) При сохранении нового сгенерированного «растрового изображения» как мне снова установить DPI в файле JPEG?

Следующее является частью код для справки.

Код: Выделить всё

    FileInputStream inputStream = new FileInputStream(theSourcePhotoFilePathName);

Bitmap bitmap = null;
BitmapRegionDecoder decoder = null;

BitmapFactory.Options options = new BitmapFactory.Options();
options.inSampleSize = 1;
options.inDensity = 300;   // Tried this but not working.

try {
decoder = BitmapRegionDecoder.newInstance(in, false);
bitmap = decoder.decodeRegion(region, options);      // the region has cropping coordinates.
} catch (IllegalArgumentException e){
Log.d("First Activity", "Failed to recycle bitmap for rect=" + region, e);
} catch (IOException e) {
Log.d("First Activity", "Failed to decode into rect=" + region, e);
} finally {
if (decoder != null) decoder.recycle();
}

inputStream.close();
inputStream = null;

FileOutputStream fos = new FileOutputStream( theTargetTempFolderDestFilePath );
bitmap.compress(CompressFormat.JPEG, jpegCompressionRatio, fos);
fos.flush();
fos.close();
fos = null;
Я пытался найти в stackoverflow и на других сайтах с помощью Google, но не смог получить правильный ответ. Поэтому я решил задать этот вопрос на этом форуме.

Ваши советы и предложения приветствуются.

Санджай.

Подробнее здесь: https://stackoverflow.com/questions/218 ... -while-loa
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Android»