Приложение для Android: как использовать камеру и захватить изображение байтами? - PullRequest
2 голосов
/ 27 января 2012

Я пытаюсь создать небольшое приложение для Android, которое делает снимок с помощью камеры устройства и помещает поверх него рамку PNG. Таким образом, у окончательного сохраненного изображения будет пляж, или шляпы, или что-нибудь еще. У кого-нибудь есть примеры программ с таким поведением?

1 Ответ

5 голосов
/ 27 января 2012

Ознакомьтесь с документацией SDK по использованию способа захвата изображения здесь .

Я начинаю свое намерение захвата изображения следующим образом:

Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);

CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE является приватным участником в моей деятельности:

private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;

Затем получите байтовый массив с камеры, используя следующий обработчик onActivityResult:

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {        
    if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
        if (resultCode == Activity.RESULT_OK) {
            Bitmap bmp = (Bitmap) data.getExtras().get("data");
            ByteArrayOutputStream stream = new ByteArrayOutputStream();
            bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
            byte[] byteArray = stream.toByteArray();

            AddImage(byteArray);

        } else if (resultCode == Activity.RESULT_CANCELED) {
            // User cancelled the image capture
        } else {
            // Image capture failed, advise user
        }
    }               
}

После этого вы можете выполнять всю необходимую обработку изображения.

...