2 Stimmen

Android-Anwendung: Wie kann man die Kamera verwenden und die Bildbytes erfassen?

Ich versuche, eine kleine App für Android zu erstellen, die ein Bild mit der Kamera des Geräts aufnimmt und einen PNG-Rahmen darüber legt. Auf diese Weise wird das endgültig gespeicherte Bild einen Strand oder Hüte oder irgendetwas darüber haben. Hat jemand ein Beispielprogramm mit diesem Verhalten?

5voto

frikkenator Punkte 241

Werfen Sie einen Blick in die SDK-Dokumentation zur Verwendung der Bilderfassungsfunktion aquí .

Ich beginne meine Bilderfassung wie folgt:

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

CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE ist ein privates Mitglied in meiner Aktivität:

private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;

Dann erhalten Sie das Byte-Array von der Kamera zurück, indem Sie den folgenden onActivityResult-Handler verwenden:

@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
        }
    }               
}

Danach können Sie das Bild nach Belieben bearbeiten.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X