2013-08-21 7 views
6

Ich habe das Tutorial der Schaffung einer Kamera Capture-Seite in diesem Video gefolgtein Bild Lokal in Codename Ein Projekt speichern

protected void onCamera_CaptureButtonAction(Component c, ActionEvent event) { 
    String i = Capture.capturePhoto(); 
    if (i != null) { 
     try { 
      Image img = Image.createImage(i).scaledHeight(500); 
      findCameraLabel().setIcon(img); 

     } catch (Exception ex) { 
     } 
    } 

} 

I Ich habe mir die CameraDemo-Anwendung angeschaut, kann aber keine Dateien finden, die gespeichert werden.

Ich möchte im Grunde nur alle Bilder im Ordner Src gespeichert werden.

Jede Hilfe würde sehr geschätzt werden.

Antwort

7

Der Ordner src existiert nicht auf Ihrem Gerät und Sie haben keinen Zugriff auf den "Anwendungsordner" (wo die nativen Binärdateien gespeichert sind), sonst könnten Sie Ihre Anwendung auf dem Gerät ändern Installieren eines Virus.

Die Variable i in Ihrem Beispiel ist eine temporäre Datei URL, die Sie auf Ihrem PC/Mac sehen können. Sie sollten es in eine lokale Datei oder in den lokalen Speicher kopieren.

Sie können einen Eingabestream für das Bild mit FileSystemStorage öffnen, Sie können ihn dann mit derselben Klasse speichern (z. B. im Home-Verzeichnis der Anwendung) oder Sie können das Bild mit der Storage-Klasse speichern.

z. Sie können das Bild in den lokalen Speicher als solches kopieren:

InputStream stream = FileSystemStorage.getInstance().openInputStream(i); 
OutputStream out = Storage.getInstance().createOutputStream("MyImage"); 
Util.copy(stream, out); 
Util.cleanup(stream); 
Util.cleanup(out); 
+0

Woah genial. OK danke. Ist es möglich, diese Dateien nach dem Speichern erneut zu lesen? –

+0

Was ist der Sinn, sie sonst zu speichern ;-) Storage hat eine Methode, um auch einen Eingabestrom zu öffnen, und Sie können mit EncoderedImage.create (stream) ein Image-Objekt erstellen. –

+0

Shai! Du bist der Mann! Vielen Dank für die Hilfe !! –

Verwandte Themen