Android - Сохранить ImageView в файл с полным разрешением изображения - PullRequest
4 голосов
/ 27 декабря 2011

Я поместил изображение в ImageView и внедрил мультитач для изменения размера и перемещения изображения внутри ImageView.Теперь мне нужно сохранить изображение с измененным размером в файл изображения.Я пробовал .getDrawingCache (), но это изображение имеет размер ImageView.Я хочу, чтобы изображение показывало то, что показывает ImageView, но с полным разрешением (больше, чем ImageView).

Есть идеи?

Ответы [ 2 ]

4 голосов
/ 27 декабря 2011

Вы можете держать растровый объект в фоновом режиме, размер которого можно изменить с помощью этого фрагмента кода:

Matrix matrix = new Matrix();
matrix.postScale(scaledWidth, scaledHeight);

Bitmap resizedBitmap = Bitmap.createBitmap(originalBitmap, 0, 0,
    originalBitmap.width(), originalBitmap.height(), matrix, true); 

И сохраните его позже, используя этот код:

OutputStream fOut = null;
File file = new File(strDirectoy,imgname);
fOut = new FileOutputStream(file);

resizedBitmap.compress(Bitmap.CompressFormat.PNG, 0, fOut);
fOut.flush();
fOut.close();
1 голос
/ 30 декабря 2011

Мое решение состояло в том, чтобы использовать матрицу, которую я использовал для ImageView, чтобы получить перевод, и у меня также был масштаб этого изображения. Используя эти два, я обрезал исходное изображение.

Bitmap resizedBitmap = Bitmap.createBitmap(
                        BitmapFrontCover, (int) UpperLeftCornerX,
                        (int) UpperLeftCornerY, (int) CropWidth,
                        (int) CropHeight);
...