2013-08-21 20 views
6

Mam następnie tutorial tworzenia strony przechwytywania z kamery w tym filmie: http://www.youtube.com/watch?v=nF4eqzVcsicZapisywanie obrazu lokalnie w Codename jeden projekt

Więc mój kod w tej chwili wygląda to tak:

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 spojrzał na aplikację CameraDemo, ale nie może zlokalizować żadnych zapisywanych plików.

Po prostu chcę, aby wszystkie zdjęcia zrobione zostały zapisane w folderze src.

Każda pomoc zostanie bardzo doceniona. Ari

Odpowiedz

7

Folder src nie istnieje w twoim urządzeniu i nie masz dostępu do "folderu aplikacji" (gdzie przechowywane są natywne pliki binarne) w przeciwnym razie możesz zmienić aplikację na urządzeniu instalowanie wirusa.

Zmienna i w twoim przykładzie to tymczasowy adres URL pliku, który możesz zobaczyć na swoim komputerze PC/Mac. Powinieneś skopiować go do pliku lokalnego lub do magazynu lokalnego.

Możesz otworzyć strumień wejściowy do obrazu za pomocą FileSystemStorage, możesz go następnie zapisać za pomocą tej samej klasy (np. W katalogu domowym aplikacji) lub możesz użyć klasy Storage, aby zapisać obraz w dowolnym miejscu.

E.g. możesz skopiować obraz do lokalnego magazynu jako:

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

Woah niesamowite. Ok dzięki. Czy możliwe jest ponowne odczytanie tych plików po ich zapisaniu? –

+0

Jaki jest sens zapisywania ich w inny sposób ;-) Pamięć masowa ma metodę otwierania strumienia wejściowego i można użyć EncodedImage.create (strumień), aby uzyskać obiekt obrazu. –

+0

Shai! Jesteś meżczyzną! Dziękuję bardzo za pomoc! –