คำตอบอยู่ในเอกสารของ Java การสอนสำหรับการเขียน / การบันทึกภาพ
Image I/O
ชั้นมีวิธีการต่อไปสำหรับการบันทึกภาพ:
static boolean ImageIO.write(RenderedImage im, String formatName, File output) throws IOException
บทช่วยสอนอธิบายว่า
คลาส BufferedImage ใช้อินเทอร์เฟซ RenderedImage
จึงสามารถใช้ในวิธีการนี้ได้
ตัวอย่างเช่น,
try {
BufferedImage bi = getMyImage(); // retrieve image
File outputfile = new File("saved.png");
ImageIO.write(bi, "png", outputfile);
} catch (IOException e) {
// handle exception
}
สิ่งสำคัญคือต้องล้อมรอบการwrite
โทรด้วยtry blockเนื่องจากตามAPIวิธีนี้จะแสดงข้อความIOException
"หากเกิดข้อผิดพลาดระหว่างการเขียน"
นอกจากนี้ยังอธิบายถึงวัตถุประสงค์พารามิเตอร์ผลตอบแทนและการโยนของวิธีการในรายละเอียดเพิ่มเติม:
เขียนภาพโดยใช้ ImageWriter โดยพลการที่สนับสนุนรูปแบบที่กำหนดให้กับไฟล์ หากมีไฟล์อยู่แล้วเนื้อหาจะถูกละทิ้ง
พารามิเตอร์:
im - RenderedImage ที่จะเขียน
formatName - สตริงที่เชื่อมโยงกับชื่อทางการของรูปแบบ
เอาต์พุต - ไฟล์ที่จะเขียน
ผลตอบแทน:
เท็จหากไม่พบตัวเขียนที่เหมาะสม
โยน:
IllegalArgumentException - ถ้าพารามิเตอร์ใด ๆ เป็นโมฆะ
IOException - หากเกิดข้อผิดพลาดระหว่างการเขียน
อย่างไรก็ตามformatName
อาจยังดูค่อนข้างคลุมเครือและคลุมเครือ บทช่วยสอนจะล้างมันเล็กน้อย:
เมธอด ImageIO.write เรียกโค้ดที่ใช้ PNG เขียน "ปลั๊กอินตัวเขียน PNG" คำว่าปลั๊กอินถูกใช้เนื่องจาก Image I / O สามารถขยายได้และรองรับรูปแบบได้หลากหลาย
แต่จะมีปลั๊กอินรูปแบบรูปภาพมาตรฐานต่อไปนี้: JPEG, PNG, GIF, BMP และ WBMP อยู่เสมอ
สำหรับแอปพลิเคชันส่วนใหญ่ก็เพียงพอที่จะใช้หนึ่งในปลั๊กอินมาตรฐานเหล่านี้ พวกเขามีข้อได้เปรียบในการพร้อมใช้งาน
อย่างไรก็ตามมีรูปแบบเพิ่มเติมที่คุณสามารถใช้ได้:
คลาส I / O ของอิมเมจมีวิธีในการเชื่อมต่อการสนับสนุนสำหรับรูปแบบเพิ่มเติมที่สามารถใช้ได้และมีปลั๊กอินดังกล่าวจำนวนมาก หากคุณสนใจในรูปแบบไฟล์ที่พร้อมให้โหลดหรือบันทึกในระบบของคุณคุณอาจใช้เมธอด getReaderFormatNames และ getWriterFormatNames ของคลาส ImageIO วิธีการเหล่านี้ส่งคืนอาร์เรย์ของสตริงที่แสดงรายการรูปแบบทั้งหมดที่สนับสนุนใน JRE นี้
String writerNames[] = ImageIO.getWriterFormatNames();
อาร์เรย์ของชื่อที่ส่งคืนจะรวมปลั๊กอินเพิ่มเติมที่ติดตั้งไว้และอาจใช้ชื่อเหล่านี้เป็นชื่อรูปแบบเพื่อเลือกโปรแกรมเขียนภาพ
สำหรับตัวอย่างที่สมบูรณ์และใช้งานได้จริงเราสามารถอ้างถึงตัวอย่างของ OracleSaveImage.java