Android Camera - Как я могу изменить пиксели в Preview? - PullRequest
2 голосов
/ 11 марта 2012

Я хотел бы изменить некоторые пиксели в предварительном просмотре, чтобы они были немного темнее остальных.Допустим, я бы хотел, чтобы верхняя половина предварительного просмотра была немного темнее, чем нижняя половина предварительного просмотра.

Я пытался использовать setPreviewCallback следующим образом:

camera.setPreviewCallback(new PreviewCallback() {
    // Called for each frame previewed
    public void onPreviewFrame(byte[] data, Camera camera) {
    Log.d(TAG, "onPreviewFrame called at: " + System.currentTimeMillis());
    for (int i = 0; i < data.length; i++){
         if(i < data.length/2)
         data[i] = manipulate(data[i]);
    }
    Preview.this.invalidate();
    }
});

Ноэто не работает, потому что я делаю что-то не так.Как я могу заставить это работать?

Спасибо Eyal

1 Ответ

1 голос
/ 11 марта 2012

Невозможно управлять таким предварительным просмотром, потому что вы только получите копию буфера в onPreviewFrame.

Самое простое, что нужно сделать, это наложить другой вид, который использует прозрачный холст, чтобы сделать его части темнее. Представление наложения может реализовать Camera.PreviewCallback, если вам нужно изучить входящее изображение для создания наложения.

В своей деятельности вы делаете:

setContentView(yourPreviewSurfaceView);
addContentView(yourOverlayView, ...);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...