Używam imgscalr biblioteki Java, aby zmienić rozmiar obrazu.
Wynikiem wywołania metody resize () jest obiekt BufferedImage. Chcę teraz zapisać to jako plik (zwykle .jpg).
Jak mogę to zrobić? Chcę odejść BufferedImage
-> File
ale może to nie jest właściwe podejście?
java
file-io
bufferedimage
Ankur
źródło
źródło
NullPointerException
, używajif (outputfile.exists())
Możesz zapisać
BufferedImage
obiekt używając metody writejavax.imageio.ImageIO
klasy. Podpis metody wygląda następująco:Tutaj
im
jestRenderedImage
tekst do zapisania,formatName
to ciąg znaków zawierający nieformalną nazwę formatu (np. Png) ioutput
obiekt pliku do zapisania. Przykładowe użycie metody dla formatu pliku PNG jest pokazane poniżej:źródło
Odpowiedź znajduje się w samouczku dokumentacji Java dotyczącym pisania / zapisywania obrazu .
Image I/O
Klasa zawiera następujące metody zapisywania obrazu:Samouczek wyjaśnia to
więc można go użyć w metodzie.
Na przykład,
Ważne jest, aby otoczenie
write
wywołania blokiem try, ponieważ zgodnie z interfejsem API metoda zgłasza plikIOException
„jeśli podczas pisania wystąpi błąd”Bardziej szczegółowo wyjaśniono również cel metody, parametry, zwroty i rzuty:
Jednak
formatName
nadal może wydawać się raczej niejasne i niejednoznaczne; samouczek wyjaśnia to trochę:Istnieją jednak dodatkowe formaty, których możesz użyć:
Pełny i praktyczny przykład można znaleźć w przykładzie Oracle
SaveImage.java
.źródło
Utwórz i zapisz java.awt.image.bufferedImage do pliku:
Uwagi:
źródło
W swoim kodzie:
źródło
Jako jedna wkładka:
źródło