Я разрешаю пользователям выбирать разрешение изображения, например 4096x3024px, затем получить это изменяемое растровое изображение из потока, а затем отправить его на поверхность и создать еще один холст, который должен быть используется для масштабирования от размера экрана до размера растрового изображения.Android получить растровое изображение с камеры, масштаб холста в размер растрового изображения и сохранить растровое изображение
Когда я масштабирую изображение холста, изображение не масштабируется правильно. Я попытался создать матрицу, масштабированную ее от центра, но все равно никакого результата.
Это где я получаю растровое изображение из камеры предварительного просмотра и привлечь к холсту, используемый для масштабирования и сохранения
public Bitmap mergeImageAndCanvas(Bitmap bitmap) {
// DRAW TO Canvas created in constructor
canvasImage.setBitmap(bitmap);
render(canvasImage, true);
canvasImage.setBitmap(null);
System.out.println("Canvas " + canvas.getWidth() + ", height " + canvas.getHeight());
return bitmap;
}
Здесь я Высококлассный и попытаться центром изображения, чтобы сохранить точное положение текста и линии я рисовать
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
// Toast.makeText(getContext(), "Surfaceview surfaceChanged() width " +
// width + ", height" + height,
// Toast.LENGTH_LONG).show();
bitmapWitdh = photoHandler.photoWidth;
bitmapHeight = photoHandler.photoHeight;
canvasWidth = width;
ratioX = (float) canvasWidth/1280;
canvasHeight = height;
scaleX = ((float) bitmapWitdh)/(float) canvasWidth;
scaleY = ((float) bitmapHeight)/(float) canvasHeight;
float middleX = bitmapWitdh/2.0f;
float middleY = bitmapHeight/2.0f;
scaleMatrix = new Matrix();
// scaleMatrix.preScale(scaleX, scaleY);
scaleMatrix.setScale(scaleX, scaleY, middleX, middleY);
// scaleMatrix.postTranslate(-(bitmapWitdh)/2, -(bitmapHeight)/2);
// scaleMatrix.setTranslate(300, 300);
canvasImage.setMatrix(scaleMatrix);
}
Вот то, что я хочу для того чтобы достигнуть после высококлассного (Это то, что пользователь видит на экране с разрешением 1280x720) Image Screen
Th (разрешение изображения 2560x1920) Final image
'затем получить это изменяемое растровое изображение из потока. Извините, вы пошли быстро. Из какого потока? С камеры? – greenapps
У меня нет проблем с получением растрового изображения с камеры. Проблема начинается после ее получения и установки в качестве растрового изображения для холста. Да получить растровое изображение по данным метода onPictureTaken. Используйте опцию inMutable, чтобы сделать ее пригодной для рисования на ней с помощью холста. Но преобразование разрешения - это то, где я терпит неудачу. – Thracian
Я получаю растровое изображение с большими размерами, от камеры, чем холст, на который наносится текст линии. Я высококлассный холст, чтобы соответствовать размеру растрового изображения, но позиции текста и рисунка не там, где они предположили. – Thracian