Я пытался получить предварительный просмотр задней камеры зеркально ... Я имею в виду, что предварительный просмотр должен отражать изображения по вертикали; он должен поменяться справа налево, как передняя камера ... Мне не нужен нормальный просмотр, мне нужно, чтобы изображение было таким, как если бы оно было видно с передней камеры, и я пытаюсь использовать SurfaceTexture. Есть ли кто-нибудь, кто об этом знает? Любые виды помощи приветствуются!Как зеркалировать предварительный просмотр камеры?
ответ
Это то, что я сделал. Я преобразовал массив пикселей в растровое изображение и перевернул его. Я заметил, что мне также пришлось повернуть изображение. Если вам нужно это сделать, вы можете сделать это с помощью метода rotateBitmap ниже. Я повернул его, прежде чем перевернуть его. Поскольку мое приложение использует обе камеры, я сначала делаю чек, чтобы посмотреть, использует ли он переднюю камеру.
public Bitmap flip(Bitmap d)
{
Matrix m = new Matrix();
m.preScale(-1, 1);
Bitmap dst = Bitmap.createBitmap(d, 0, 0, d.getWidth(), d.getHeight(), m, false);
dst.setDensity(DisplayMetrics.DENSITY_DEFAULT);
return dst;
}
public Bitmap rotateBitmap(Bitmap source, float angle)
{
//Rotates Bitmap
Matrix matrix = new Matrix();
matrix.postRotate(angle);
return Bitmap.createBitmap(source, 0, 0, source.getWidth(), source.getHeight(), matrix, true);
}
Таким образом, это будет выглядеть так.
if(orienation == Orienation.SELFIE)
{
bMap = rotateBitmap(bMap, 270);
bMap = flip(bMap);
}
Это только некоторые пользовательские поля, которые я использовал в своем приложении. Я думаю, вы поняли идею и можете удовлетворить ее, как вам нужно.
private Camera.PictureCallback mPicture = new Camera.PictureCallback() {
@Override
public void onPictureTaken(byte[] data, Camera camera) {
Bitmap bMap = BitmapFactory.decodeByteArray(data, 0, data.length);
if (currentCameraId == Camera.CameraInfo.CAMERA_FACING_FRONT) {
frontFacing = true;
}
}
};
Вы можете создать растровое изображение в своем PictureCallback. Просто преобразуйте массив пикселей в растровое изображение. Если вы используете обе камеры в своем приложении, вы можете проверить, используете ли вы фронт, как в приведенном выше примере.
Кроме того, если это решит вашу проблему, отметьте ее как таковую. Это поможет другим столкнуться с одной и той же проблемой. – drew
Спасибо, я отметил как ответ на данный момент –
вы знаете, как преобразовать предварительный просмотр, который в моем случае является поверхностным отображением в растровое изображение? –
Вы просто пытаетесь перевернуть изображение так, чтобы оно выглядело так, как на главной камере? – drew
Да, я хочу перевернуть предварительный просмотр справа налево или влево-вправо, это то же самое для меня ... знаете ли вы какой-либо метод? –
Вы используете камеру2api? Или старше? – drew