วัตถุ ImageReader มักจะสร้างอินสแตนซ์โดยคลาสอินเตอร์เฟสผู้ให้บริการ (SPI) ในรูปแบบเฉพาะ คลาสผู้ให้บริการ (เช่นอินสแตนซ์ของ ImageReaderspi) ลงทะเบียนกับ iioregistry ซึ่งใช้การจดจำรูปแบบเดิมและแสดงรูปแบบผู้อ่านและนักเขียนรูปแบบที่มีอยู่
subclass bufferedImage อธิบายภาพด้วยบัฟเฟอร์ข้อมูลรูปภาพที่เข้าถึงได้ BufferedImage ประกอบด้วย colormodel และ raster ของข้อมูลภาพ จำนวนและประเภทของวงดนตรีใน SampleModel ของ Raster จะต้องตรงกับจำนวนที่ต้องการและประเภทของ colormodel เพื่อแสดงสีและส่วนประกอบของอัลฟ่า พิกัดซ้ายบนของวัตถุบัฟเฟอร์ทั้งหมดคือ (0,0) ดังนั้นแรสเตอร์ใด ๆ ที่ใช้ในการสร้าง bufferedImage จะต้องตอบสนอง: minx = 0 และ miny = 0
ไม่จำเป็นต้องพูดลองดูสิ
/***/แพ็คเกจ com.b510; นำเข้า java.awt.image.bufferedimage; นำเข้า java.io.file; นำเข้า java.io.fileinputstream; นำเข้า java.io.filenotfoundException; นำเข้า java.io.ioException; javax.imageio.imagereader; นำเข้า Javax.imageio.stream.imageInputstream; คลาสสาธารณะ ImageUtil {/** * ชื่อของเส้นทางภาพต้นทางมีดังนี้: C: /1.jpg */สตริงส่วนตัว srcpath = "e: /pool.jpg" ใหม่ imageUtil (); util.getImagesizeByimagereader (util.getSrcPath ()); util.GetImageSizeByBufferEmage (util.getSrcPath ());}/*** ใช้ imageReader เพื่อให้ได้ขนาดภาพ** @param SRC* วันที่ (). getTime (); ไฟล์ไฟล์ = ไฟล์ใหม่ (src); ลอง {iterator <AmageReader> readers = imageio.getimageEdersByFormatName ("jpg"); imageReader reader = (imageReader) true); system.out.println ("ความกว้าง:" + reader.getWidth (0)); system.out.println ("ความสูง:" + reader.getheight (0));} catch (ioexception e) {e.printstacktrace () [" + (endtime - begintime) +"] ms ");}/*** ใช้ bufferedImage เพื่อรับขนาดภาพ** @param src* เส้นทางภาพแหล่งที่มา*/โมฆะสาธารณะ getImagesizeByBufferedImage (สตริง src) {long begintime = วันที่ใหม่ FileInputStream (ไฟล์);} catch (filenotfoundException e2) {e2.printstackTrace ();} bufferedImage sourceimg = null; ลอง {sourceimg = javax.imageio.imageio.read (IS); system.out.println ( sourceimg.getheight ());} catch (ioexception e1) {e1.printstacktrace ();} endtime ยาว = วันที่ใหม่ (). getTime (); system.out.println ("เวลาที่จะใช้ [bufferedImage] setSrcPath (String srcPath) {this.srcPath = srcPath;}}ผลการทำงาน:
เป็นเรื่องง่ายสำหรับคุณที่จะเข้าใจ ... คุณควรเลือกวิธีใด ...
สรุป
ข้างต้นเป็นเนื้อหาทั้งหมดของบทความนี้เกี่ยวกับการได้รับอินสแตนซ์ขนาดภาพใน Imagereader และ BufferedImage ใน Java ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน เพื่อนที่สนใจสามารถอ้างถึงหัวข้ออื่น ๆ ที่เกี่ยวข้องในเว็บไซต์นี้ต่อไป หากมีข้อบกพร่องใด ๆ โปรดฝากข้อความไว้เพื่อชี้ให้เห็น ขอบคุณเพื่อนที่ให้การสนับสนุนเว็บไซต์นี้!