Я стараюсь сделать это:Как повернуть растровое изображение без изменения размера файла?
Bitmap bitmapOrg = BitmapFactory.decodeFile("/sdcard/"+ photoName + ".jpg");
int width = bitmapOrg.getWidth();
int height = bitmapOrg.getHeight();
Matrix matrix = new Matrix();
matrix.postRotate(90);
Bitmap resizedBitmap = Bitmap.createBitmap(bitmapOrg, 0, 0, width,
height, matrix, true);
FileOutputStream os;
try {
os = new FileOutputStream(String.format(
"/sdcard/" + photoName + "-rotate.jpg",
System.currentTimeMillis()));
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 100, os);
повернутого размером файла> оригинального размером файла, так как повернутое разрешение файла = 96 точек на дюйм, но и исходный файл = 72 точек на дюйм. Почему это происходит и как это исправить?
Это не работает. Я получаю тот же результат. –
@sherman это влияет только на плотность пикселей, а не на размер файла. Из документации: «возможно, что возвращаемое растровое изображение из BitmapFactory может быть в другом битовом сигнале и/или может потеряться на пиксель альфа (например, JPEG поддерживает только непрозрачные пиксели)». Кроме того, вы указываете качество '100', что может привести к большему выходу, чем к входу. –
Да, вы правы, но почему плотность не меняется? –