Zapisywanie obrazów w postaci dokumentu XML.

0

Witam,

Koledzy mam pytanie odnośnie zapisywania obrazu w postaci dokumentu XML. Obecnie robię screena JPanel'u i wszystko ładnie działa tylko problem jest w tym, że obraz ma nie być zapisywany w png tylko jako dokument XML. Możecie jakoś pomóc?

0

Lekcja na dziś: grafika wektorowa. Bo zakładam że jednak "obraz" który chcesz zapisywać to jest coś co się da opisać za pomocą grafiki wektorowej.

0

Jeżeli dane są w postaci wektorowej, to może warto skorzystać z formatu SVG?

0

Żeby móc to łatwo zapisywać do XMLa w postaci wektorowej:

  1. Musisz stworzyć sobie hierarchię klas która będzie zajmować się przechowywaniem obiektów które rysujesz, tzn kreski, kwadraty, kółka, elipsy i co tam jeszcze chcesz (w wersji dla hardkora mogą to być krzywe beziera :P)
  2. Malując w swoim paincie oprócz zrobienia drawLine() czy drawOval() na jakimś panelu (jak zapewne teraz robisz) musisz też dodatkowo tworzyć odpowiedni obiekt (np. obiekt twojej klasy Line) i dodawać go do kolekcji obiektów którą musisz trzymać w swoim paincie.
  3. W chwili "zapisu" swojego dzieła musisz dokonać serializacji tej swojej kolekcji do XMLa a w chwili wczytania musisz sobie ją zdeserializować. Najłatwiejszy ale trochę brzydki sposób to użycie klas XMLEncoder i XMLDecoder
//JFileChooser file;
XMLEncoder encoder = new XMLEncoder(new BufferedOutputStream(new FileOutputStream(file.getSelectedFile())));
  for (Shape s : shapes) {
    encoder.writeObject(s);            
}
encoder.close();

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.