Speichern Sie das Bild-Overlay mit dem aufgenommenen Bild unter der Kamera

8

Meine Anwendung verfügt über eine "Photobooth" -Funktion, die es dem Benutzer ermöglicht, ein Bild mit der Kamera aufzunehmen und gleichzeitig ein Overlay-Bild über der Kameraansicht anzuzeigen. Nachdem das Bild aufgenommen wurde, muss ich speichern, was der Benutzer sah, während er das Bild zum Dateisystem brachte.

Ich habe ein großes Problem erlebt, als ich eine Lösung dafür entwickelt habe: ein Bild mit den kompatiblen Dimensionen zu erfassen, in dem ich ein Overlay-Bild anhängen kann, was ergibt, was der Benutzer während der Aufnahme gesehen hat.

Es sieht so aus, als könnte ich kein Bild von der Kamera mit definierten Abmessungen aufnehmen (ich muss grundsätzlich aus einer Liste auswählen). Einige Telefone können nur bestimmte Dimensionen produzieren.

Da ich die Größe des aufgenommenen Bildes nicht auswählen kann, scheint es erforderlich zu sein, viele verschiedene Größen des Overlay-Bildes aufzunehmen und die beste Übereinstimmung an das aufgenommene Bild anzuhängen. Ich kann nicht einfach irgendein altes Overlay über das Kamerabild schlagen und es richtig aussehen lassen.

Fragen:

  • Verkompliziere ich diesen "Kamerabild + Overlay-Bilderstellungsprozess"?
  • Welche Vorschläge haben Sie, um diese Aufgabe zu erledigen, ohne dass mehrere Overlay-Bilder unterschiedlicher Größe eingefügt werden müssen?

Bearbeiten: Hier ist meine Lösung (kurz). Bitte beachten Sie, dass dies kein perfekter und vielleicht nicht effizienter Weg ist, aber es funktioniert. Manche Dinge sind unnötig / überflüssig, aber was auch immer!

Anmerkungen:

  • Das funktioniert auf Tablet-Geräten nicht besonders gut.
  • Das Overlay-Bild muss gedreht werden, um im Querformat zu sein (auch wenn Sie das Bild aufnehmen, das das Telefon im Hochformat hält)
  • Überlagerungsgröße ist 480x320
  • Sie müssen die Aktivität in den Querformatmodus versetzen, während Sie das Bild aufnehmen (jetzt sieht das Overlay wie sein Porträt aus!)
  • Ich füge die Overlay-Bildansicht mit addContentView(overlayImageView, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT)); hinzu

...

%Vor%     
binnyb 10.03.2011, 17:05
quelle

1 Antwort

1

Ich denke, das ist eine Frage, wie Sie Ihre Overlays manipulieren. Sie können sie entsprechend der Größe des aufgenommenen Bilds zuschneiden und die Größe so anpassen, dass sie passt. Sie können die Überlagerung durch Vergleich ihres Verhältnisses mit dem Hintergrundverhältnis auf ihre optimale Position setzen.

Ich würde Überlagerungen groß genug halten, mit einem breiten Rand (Anschnitt), um sie leicht zu einem Bild unter Verwendung von Filtern zu bemessen, um es mit guter Qualität zu zeichnen. Ich denke, Overlays sind etwas, das Sie entwerfen würden und transparente Teile haben, wie ein Bild eines Clowns ohne Gesicht, so dass der Benutzer jemandes Gesicht hineinschnappen kann?

    
Lumis 10.03.2011, 18:23
quelle

Tags und Links