无论mirrorFFC设置为什么,Cwacs相机照片都会被镜像

时间:2014-03-24 23:16:28

标签: android camera commonsware-cwac

我在CommonsWare的cwac-camera library遇到了一个奇怪的问题。 尽管设置了:

,前置摄像头拍摄的图像仍然是镜像的(即我在预览中看到的镜像)

builder.mirrorFFC(true);

我已确认通过登录ImageCleanupTask正确应用此设置,如下所示:

if (applyMatrix) {
  if (info.facing == Camera.CameraInfo.CAMERA_FACING_FRONT) {
    if (xact.host.getDeviceProfile().portraitFFCFlipped()
        && (xact.displayOrientation == 90 || xact.displayOrientation == 270)) {
      matrix=flip(new Matrix());
    }
    else if (xact.mirrorFFC()) {
      Log.d("myapp", "matrixFFC is true");
      matrix=mirror(new Matrix());
    }
  }

最奇怪的是,无论我是否设置了mirrorFFC(true),照片都始终镜像。我没有对Cwac库进行任何其他更改。

解决问题的快速而肮脏的黑客是修改ImageCleanupTask,如下所示:

if (matrix != null) {
    Bitmap original=
        BitmapFactory.decodeByteArray(data, 0, data.length);

    cleaned=
        Bitmap.createBitmap(original, 0, 0, original.getWidth(),
                            original.getHeight(), matrix, true);
    original.recycle();

    //below my added code:
    Matrix myMatrix = new Matrix(); 
    myMatrix.preScale(-1.0f, 1.0f);
    cleaned = Bitmap.createBitmap(cleaned, 0, 0, cleaned.getWidth(), cleaned.getHeight(), myMatrix, false);
  }

现在的问题是 - 它只是我的设备(三星SGS i9000,运行ICS)导致问题或其他什么?

0 个答案:

没有答案