รูปภาพคือรูปภาพที่ประกอบด้วยกลุ่มพิกเซลและจัดเก็บไว้ในรูปแบบไบนารี ภาษา Java รองรับไฟล์ภาพหลักสามรูปแบบ: GIF, JPEG และ BMP ฟังก์ชั่นการประมวลผลภาพของภาษาจาวาถูกห่อหุ้มไว้ในคลาสรูปภาพ
การโหลดและส่งออกรูปภาพ
ในโปรแกรม Java รูปภาพก็เป็นออบเจ็กต์เช่นกัน ดังนั้นเมื่อโหลดรูปภาพ คุณต้องประกาศออบเจ็กต์ Image ก่อน จากนั้นใช้เมธอด getImage() เพื่อเชื่อมโยงออบเจ็กต์ Image กับไฟล์รูปภาพ มีสองวิธีในการโหลดไฟล์รูปภาพ:
รูปภาพ getImage (URL url) url ระบุตำแหน่งและชื่อไฟล์ของรูปภาพ
รูปภาพ getImage (URL url, ชื่อสตริง), url ระบุตำแหน่งของรูปภาพ และ name คือชื่อไฟล์
ตัวอย่างเช่น รหัสต่อไปนี้ประกาศวัตถุ Image และใช้วัตถุ getImage() เพื่อเชื่อมโยงกับไฟล์รูปภาพ:
รูปภาพ img = getImage(getCodeBase(),"family.jpg");
ออบเจ็กต์ URL (Uniform Resource Location Uniform Resource Locator) ใช้เพื่อระบุชื่อและที่อยู่ของทรัพยากร และถูกใช้เมื่อไคลเอ็นต์ WWW เข้าถึงทรัพยากรอินเทอร์เน็ต มีสองวิธีในการกำหนดตำแหน่งของภาพ: ตำแหน่งสัมบูรณ์และตำแหน่งสัมพัทธ์ วิธีการได้รับตำแหน่งสัมพันธ์ ได้แก่ :
URL getCodeBase() รับตำแหน่งของไฟล์แอปเพล็ต
URL getDocumentBase() รับตำแหน่งของไฟล์ HTML
ตัวอย่างเช่น รหัส:
URL picURLA = URL ใหม่(getDocumentBase(),"imageSample1.gif"), picURLB = URL ใหม่(getDocumentBase(),"pictures/imageSample.gif"); รูปภาพ imageA = getImage(picURLA), imageB = getImage(picURLB);
วิธีการรับข้อมูลรูปภาพ (แอตทริบิวต์) คือ:
getWidth (ผู้สังเกตการณ์ ImageObserver): รับความกว้าง;
getHeight (ผู้สังเกตการณ์ ImageObserver): รับความสูง
โค้ดสำหรับแสดงภาพเขียนด้วยเมธอด Paint() มี 4 วิธีในการแสดงภาพ:
การวาดภาพแบบบูล (รูปภาพ img, int x, int y, ผู้สังเกตการณ์ ImageObserver) การวาดภาพแบบบูลีน (รูปภาพ img, int x, int y, สี bgcolor, ผู้สังเกตการณ์ ImageObserver) การวาดภาพแบบบูลีน (รูปภาพ img, int x, int y, ความกว้าง int, ความสูง int ,ผู้สังเกตการณ์ ImageObsever) การวาดภาพแบบบูลีน (รูปภาพ img,int x,int y,int ความกว้าง,ความสูง int,สี bgcolor,ผู้สังเกตการณ์ ImageObsever)
พารามิเตอร์ img คือวัตถุรูปภาพ x, y คือตำแหน่งมุมซ้ายบนของสี่เหลี่ยมรูปภาพ ผู้สังเกตการณ์คือผู้สังเกตการณ์รูปภาพเมื่อโหลดรูปภาพ bgcolor คือสีพื้นหลังที่ใช้แสดงรูปภาพ ความกว้างและความสูงคือพื้นที่สี่เหลี่ยม ตำแหน่งที่ภาพแสดง เมื่อพื้นที่นี้ เมื่อขนาดของภาพแตกต่างออกไป ภาพที่แสดงจะถูกปรับขนาด
คลาส Applet ยังใช้อินเทอร์เฟซ ImageObserver และมักใช้เป็นพารามิเตอร์จริง ดูรหัสและความคิดเห็นต่อไปนี้:
(1) g.drawImage(image1,0,0,this);//การแสดงภาพต้นฉบับ
(2) g.drawImage(image2,10,10,Color.red,this);//การแสดงสีพื้นหลังแบบกราฟิกบวก หมายเหตุ: หากขนาดของภาพต้นฉบับแตกต่างจากช่วงที่กำหนด ระบบจะปรับขนาดโดยอัตโนมัติ
(3) g.drawImage(labImag,0,0,this);//การแสดงภาพต้นฉบับ
(4) g.grawImage(labImag,0,120,100,100,นี้);//ซูมการแสดงผล
(5) g.grawImage(labImag,0,240,500,100,นี้);//แสดงการซูม
[ตัวอย่าง] แอปพลิเคชันขนาดเล็กใช้เมธอด init() หรือ start() เพื่อดาวน์โหลด (รับ) รูปภาพ และใช้เมธอด paint() เพื่อแสดงรูปภาพที่ได้รับ
import java.applet.*;import java.awt.*;คลาสสาธารณะ Example7_5 ขยาย Applet{ Image myImag; public void start(){ myImag = getImage(getCodeBase(),"myPic.jpg"); } public void paint(Graphics g){ g.drawImage(myImg,2,2,สิ่งนี้); }}เนื่องจากไม่มีเมธอด getImage() ในคลาสต่างๆ เช่น Frame, JFrame และ JPanel พวกเขาจึงจำเป็นต้องใช้คลาส Abstract ของ Toolkit ใน java.awt.Toolkit เพื่อโหลดรูปภาพ ซึ่งมีวิธีการสำหรับการโหลดไฟล์รูปภาพ:
ด้วยวิธีนี้ คอมโพเนนต์ต่างๆ สามารถใช้เมธอด getToolkit() เพื่อรับออบเจ็กต์ Toolkit จากนั้นแสดงรูปภาพผ่านออบเจ็กต์ Toolkit ในเมธอด paint() ของคอมโพเนนต์ รหัสต่อไปนี้แสดงให้เห็นถึงการใช้งานดังกล่าว:
เครื่องมือชุดเครื่องมือ = getToolkit(); URL url = URL ใหม่ (http://www.weixueyuan.net/image.gif); รูปภาพ img = tool.getImage(url);
ส่วนประกอบยังสามารถใช้วิธีการคงที่ getDefaultToolkit() ที่จัดทำโดย Toolkit เพื่อรับออบเจ็กต์ Toolkit เริ่มต้นและใช้เพื่อโหลดรูปภาพ ในขณะนี้ โค้ดสำหรับโหลดรูปภาพมักเขียนดังนี้:
รูปภาพ img = Toolkit.getDefaultToolkit().getImage(url);