Я работаю с фронтальной камерой в приложении Flutter, и я заметил, что на некоторых устройствах Android предварительный просмотр выглядит зеркальным, в то время как на других он выглядит правильно. Мне нужен надежный способ определить, является ли фронтальная камера зеркально. Этот метод ненадежен. < /li>
< /ol>
bool isFrontCameraMirrored() {
if (_cameraController?.description.lensDirection == CameraLensDirection.front) {
int sensorOrientation = _cameraController?.description.sensorOrientation ?? 0;
// Devices with sensor orientation 90 or 270 are likely to mirror the front camera.
return sensorOrientation == 90 || sensorOrientation == 270;
}
return false;
}
< /code>
Проблема: это не работает, потому что у меня есть два разных устройства с сенсорориентацией < /code> 270 < /code> - один зеркально, а другой нет. Зеркалирование. < /li>
< /ol>
bool checkHorizontalMirroring(img.Image image) {
int width = image.width;
int height = image.height;
var leftPixel = image.getPixel(10, height ~/ 2);
var rightPixel = image.getPixel(width - 10, height ~/ 2);
return leftPixel != rightPixel;
}
< /code>
Проблема: Этот метод всегда возвращает истинность, даже когда изображение не зеркально._isMirroredHorizontally
? Positioned.fill(
child: Transform.flip(
flipX: true,
child: CameraPreview(_cameraController!),
),
)
: Transform.scale(
scale: 1 / tempScale,
child: Center(
child: CameraPreview(_cameraController!),
),
),
Подробнее здесь: https://stackoverflow.com/questions/794 ... rroring-on