ďťż

Ładny brzuch

Witam(po raz drugi dzisiaj ;) )!

Mam, oprócz problemów z Eclipse, mały problem programistyczny.

Mam w klasie takie zadanie: dostaję ścieżkę do zdjęcia, muszę je skopiować ze zmienieniem wymiarów na 150x112, oba potem wysłać na FTP. Biblioteka FTP wymaga, by dane pobierać z dysku, a nie pamięci.

I mam takie kod:
//(...) ftp.uploadFile(photo.getZdjPlik(), "/p1/galeria/" + name); Toolkit tk = Toolkit.getDefaultToolkit(); Image img = tk.getImage(photo.getZdjPlik()); Image miniImg = img.getScaledInstance(150, 112, Image.SCALE_DEFAULT); //(...)
photo.getZdjPlik() - ścieżka do pliku, name - nazwa pliku(ostatni człon photo.getZdjPlik()).

I jak chcę zapisać to na dysk, w większości tutoriali podają mi, że BufferedImage ma narzędzia do zapisywania. Problem w tym, że getScaledInstance zwraca Image, a tego nie mogę przerzutować :(

//Póki nie zatwierdziłem ;)

znalazłem takie coś:
public BufferedImage createBufferedImage(Image image) { BufferedImage bi = new BufferedImage(image.getWidth(null), image.getHeight(null), BufferedImage.TYPE_INT_RGB); Graphics2D g = bi.createGraphics(); g.drawImage(image, 0, 0, null); return bi; }
jednak w czasie działania programu, zgłasza się wyjątek(image.getWidth(null) = -1). Więc nie działa i BufferedImage.

Czy ktoś ma pomysł, jak temu zaradzić?
Jak coś niejasno napisałem(a to może być możliwe :P ) piszcie, postaram się rozjaśnić.

Pozdrawiam,
Tomek92

//EDYCJA:
Oj nie popisałem się... oto prawidłowy kod(a właściwie jego wycinki ;) ):
BufferedImage img = ImageIO.read(new File(photo.getZdjPlik())); BufferedImage miniImg = createBufferedImage(img.getScaledInstance(150, 112, Image.SCALE_FAST)); ImageIO.write(miniImg, "jpg", new File(path));

Jeśli chcę korzystać z BufferedImage, muszę wczytać obrazek za pomocą ImageIO.read. W przeciwnym wypadku przy wywołaniu createBufferedImage wywala w/w błąd. Niby szczegół... Szkoda tylko, że nigdzie o nim nie pisało... <_<
Użytkownik Tomek92 edytował ten post 02 sierpień 2008, 17:49
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • zsf.htw.pl
  •