Tworzę interfejs użytkownika za pomocą Swing i chcę wyświetlić obraz w postaci JLabel
. Kod używam jest następujący:Toolkit.getDefaultToolkit(). CreateImage() kontra ImageIO.read()
JLabel label = new JLabel(new ImageIcon(ImageIO.read(new File("img.jpg"))));
Działa to dobrze, jeśli mogę użyć png
obrazy, ale jeśli chodzi o jpg
(tylko niektóre z nich), otrzymuję Redish obraz (inną niż jednego widzę w Paint.NET). Obraz użyłem jest to jedno: img.jpg
Więc próbowałem (alternatywnie):
Toolkit.getDefaultToolkit().createImage(new File("img.jpg").getAbsolutePath());
- Czy ktoś ma pomysł dlaczego tak się dzieje? Czy jest to specjalny format
JPEG
, który nie jest obsługiwany? - Przeczytałem na tym forum, że większość osób zaleca używanie ImageIO (na przykład: here). Czemu?
dziękuję
Czy alternatywa działa? – ShiDoiSi
Tak, to prawda. Dlatego zastanawiam się, dlaczego ludzie polecają w inny sposób ... –
Czekaj, nie mogę znaleźć 'createImage (File f)' w dokumentacji Toolkit Java ... na pewno? – ShiDoiSi