Вопрос связан с (печатью) 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;
Ваши советы и предложения приветствуются.
Санджай.
Подробнее здесь: https://stackoverflow.com/questions/218 ... -while-loa