Zapis do pliku BMP

0

Witam,
mam taki problem, że muszę napisać program, który pobiera wartości zmiennych x i y z pliku, potem rysuje wykres funkcji zaznaczając punkty na osi i zapisuje powstały wykres do pliku BMP. Niestety nie wiem jak się do tego zabrać. Naszukałem się wielu rzeczy odnoście zapisywania do plików graficznych, ale z reguły były to jakieś skomplikowane programy co nie za bardzo mi pomogło. Wyczytałem że najbardziej przydatna będzie klasa Bufferedimage, ale kompletnie nie wiem jak z niej skorzystać, bo jak pisałem jest wiele przykładów, ale całkowicie innego zastosowania. Czy możecie mi powiedzieć co będzie najlepszym rozwiązaniem do rysowania takiego wykresu?

Z góry dziękuję za pomoc!

0

Lepiej weź biblioteke JFreeChart na warsztat o wiele lepsze i nie trzeba od nowa wszystkiego pisać.

0

Hej,

Może coś takiego Ci się przyda? Chyba ostatnio z tego korzystałem do zapisywania właśnie rysowanych wykresów w jednej apce.

/**
 * SAVE PLOT
 * @author ^^
 * @param component
 * @param savePath
 * @param fileName
 * @param fileType
 */
public void savePlot(JComponent component, String savePath, String fileName, String fileType) {
     BufferedImage bi = new BufferedImage(component.getSize().width, component.getSize().height, BufferedImage.TYPE_INT_RGB);
     Graphics g = bi.createGraphics();
     component.paint(g);
     try {
          ImageIO.write(bi, fileType, new File(savePath + fileName + "." + fileType));
     } catch (IOException ex) {
          ex.printStackTrace();
     }
}
0

Niestety nie mogę korzystać z bibliotek innych niż te które są wbudowane w Netbeansie :< ale dziękuję za zainteresowanie i spróbuję zrobić coś z tego co wysłałeś : D

0

EDIT:
Dobra, ogólnie ogarnąłem rysowanie pliku. Ale teraz mam pytanie o sam pomysł. Tak jak mówiłem, zadanie polega na tym, że nauczyciel podaje do pliku wartości X i Y typu float. Nie powiedział nic o zaokrąglaniu tych wartości, więc chyba może wpisać sobie wartość 1,23456. Macie pomysł jak zrobić rysowanie punktów na siatce pikseli? Chodzi mi o to, że np jeśli wezmę punkt X1: 1,23 X2: 2,23 to pomiędzy nimi jest 98 pikseli, więc można tam upychać każdy punkt zaokrąglając do 2 miejsc po przecinku. Ale to jest fajne przy małych odległościach tych punktów. Ponieważ jakby wziąć punkt X1: 1 i X2: 100, to pomiędzy nimi jest już około 10000 pikseli, co tworzy niesamowicie 'ciężki' obrazek BMP.
Jakim sposobem mógłbym to inaczej rozwiązać? Rozumiecie o co mi chodzi? : D

1 użytkowników online, w tym zalogowanych: 0, gości: 1