Cevap, Java Dokümantasyonunun Görüntü Yazma / Kaydetme Eğitiminde yatmaktadır .
Image I/O
Sınıfı, bir görüntü kaydetmek için aşağıdaki yöntem de sağlar:
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
Öğretici bunu açıklıyor
BufferedImage sınıfı, RenderedImage arabirimini uygular.
bu yüzden yöntemde kullanılabilir.
Örneğin,
try {
BufferedImage bi = getMyImage(); // retrieve image
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
// handle exception
}
write
Çağrıyı bir try bloğu ile çevrelemek önemlidir, çünkü API'ye göre yöntem IOException
"yazma sırasında bir hata oluşursa" atar.
Ayrıca yöntemin amacı, parametreleri, geri dönüşleri ve atışları daha ayrıntılı olarak açıklanmaktadır:
Verilen biçimi bir Dosyaya destekleyen rastgele bir ImageWriter kullanarak bir görüntü yazar. Halihazırda bir Dosya varsa, içeriği atılır.
Parametreler:
im - yazılacak bir RenderedImage.
formatName - biçimin resmi olmayan adını içeren bir String.
output - yazılacak bir dosya.
İadeler:
uygun bir yazar bulunmazsa false.
atar:
IllegalArgumentException - herhangi bir parametre null ise.
IOException - yazma sırasında bir hata oluşursa.
Ancak formatName
yine de belirsiz ve belirsiz görünebilir; öğretici bunu biraz açıklar:
ImageIO.write yöntemi, PNG'yi bir "PNG yazıcı eklentisi" yazarken uygulayan kodu çağırır. Eklenti terimi, Görüntü G / Ç genişletilebilir olduğundan ve çok çeşitli biçimleri destekleyebildiğinden kullanılır.
Ancak aşağıdaki standart görüntü formatı eklentileri: JPEG, PNG, GIF, BMP ve WBMP her zaman mevcuttur.
Çoğu uygulama için bu standart eklentilerden birini kullanmak yeterlidir. Hazır bulunma avantajına sahiptirler.
Bununla birlikte, kullanabileceğiniz ek formatlar vardır:
Image I / O sınıfı, kullanılabilecek ek formatları desteklemek için bir yol sağlar ve bu tür birçok eklenti mevcuttur. Sisteminize hangi dosya biçimlerinin yüklenebileceğini veya kaydedilebileceğini merak ediyorsanız, ImageIO sınıfının getReaderFormatNames ve getWriterFormatNames yöntemlerini kullanabilirsiniz. Bu yöntemler, bu JRE'de desteklenen tüm biçimleri listeleyen bir dizi dizisi döndürür.
String writerNames[] = ImageIO.getWriterFormatNames();
Döndürülen ad dizisi, kurulu olan ek eklentileri içerecektir ve bu adlardan herhangi biri, bir görüntü yazıcı seçmek için bir biçim adı olarak kullanılabilir.
Tam ve pratik bir örnek için, Oracle'ın örneğine bakılabilir SaveImage.java
.