Witam niedawno zacząłem pisać aplikację do kompresji obrazów, a że nigdy wcześniej nie zajmowałem się obrazami w javie napotkałem taki problem którego za bardzo nie potrafię rozwiązać. Na podstawie tutoriali i swojej bardzo szczuplej wiedzy napisałem metodę wczytującą obraz do pamięci wybranego jfilechoserem kod poniżej:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
JFileChooser jfc = new JFileChooser();
jfc.setCurrentDirectory(new File("C:\\INFMED\\PROJ\\img"));
jfc.showOpenDialog(null);
File sf = jfc.getSelectedFile();
if( sf==null )
return;
String iconName = sf.getAbsolutePath();
URL imgUrl = null;
try
{
imgUrl = new URL("file:\\"+iconName);
}
catch(MalformedURLException murle){}
imageA = getToolkit().getImage(imgUrl);
MediaTracker mt = new MediaTracker(this);
try
{
mt.addImage(imageA,0);
mt.waitForAll();
}
catch (InterruptedException ie)
{}
if( mt.isErrorAny() )
System.out.println("Error");
jDrawPanel.repaint(); //Odświeżamy panel który ma nadpisaną metodę print i wyświetla wczytany obraz
}
Problem jest taki że pliki jpg png są wczytywane elegancko natomiast przy plikach BMP wyskakują błędy w MediaTrackerze. I tutaj moje pytanie, czytając dokumentację klasy nie natrafiłem na żadne ograniczenia MT co do formatu obrazu, a nie umiem znaleźć błędu który uniemożliwia wczytywanie bitmap.
Z góry dziękuje za pomoc i wskazówki.