2008-09-26 10 views

Odpowiedz

13

ImageIcon implementuje Serializable i może być używany do owinąć klasy obrazie

http://java.sun.com/j2se/1.5.0/docs/api/javax/swing/ImageIcon.html

+1

Należy pamiętać: Ostrzeżenie: Serializowane obiekty tej klasy nie będą kompatybilne z przyszłymi wersjami Swing. – McDowell

+0

próbowałem .... ale masz błąd .... zagnieżdżony wyjątek: \t java.io.EOFException zobacz pytanie I zostały zaksięgowane ... http://stackoverflow.com/questions/ 11117626/java-rmi-passing-imageicon-objects –

+0

Podczas gdy to rozwiązanie działa, wydaje się, że tworzy bardzo duże pliki serializowane. Chodzi o to, aby pliki pozostały nienaruszone na dysku i zapisać referencję, kopiując obraz do lokalizacji względem zserializowanego pliku. – psycotik

0

Nie znam tego. Uważam, że musisz napisać swój własny serializator, aby zasadniczo zaoszczędzić wartości szerokości, wysokości i pikseli ... Lub zapisać go do strumienia jako PNG lub coś w rodzaju

2

javax.swing.ImageIcon, jako część Swing, nie gwarantuje mieć formę zgodną odcinkach pomiędzy wersjami. Możesz jednak oszukiwać i patrzeć na jego kod readObject i writeObject - znajdź szerokość i wysokość, chwyć piksele za pomocą PixelGrabber. Nie jestem do końca pewien, czy poprawnie pokrywa się z modelem kolorystycznym. Oczywistą alternatywą jest napisanie prawdziwego formatu obrazu za pomocą javax.imageio.