Java小遊戲DanceWithStars(二):修改本地文件中的圖片(圖片寬高和圖片型別)以及將圖片設定為JButton的影象
阿新 • • 發佈:2018-11-12
1. 修改本地文件中的圖片(圖片寬高和圖片型別)
為了使下載的圖片素材都具有統一的width和height,需要對下載來的圖片重新處理並另存
主要思想是:構造一個BufferedImage物件,用ImageIO.read()讀入,再用ImageIO.write()重畫
程式碼如下:
1 package dws1; 2 3 import java.awt.image.BufferedImage; 4 import java.io.File; 5 import java.io.IOException; 6 import javax.imageio.ImageIO; 78 public class Pictures { 9 //找到儲存路徑 10 static String IMAGE_PATH = "C:\\Users\\Yi\\eclipse-workspace\\DWS\\src\\dws1"; 11 12 //構造一個BufferedImage物件 13 public static BufferedImage oldImg; 14 15 public static void main(String[] args) { 16 17 //讀入圖片 18 try{ 19 oldImg = ImageIO.read(new File(IMAGE_PATH + "\\trophy.png")); 20 } catch (IOException e) { 21 // TODO Auto-generated catch block 22 e.printStackTrace(); 23 } 24 25 //新建一個newImg物件,width和height都是100 26 BufferedImage newImg= newBufferedImage(100, 100, BufferedImage.TYPE_INT_BGR); 27 28 29 //把原來的圖片oldImg畫入新圖片newImg中 30 newImg.(oldImg, 0, 0, 100, 100, null); 31 32 33 //將新生成的圖片自定義字尾名,且自定義路徑,存入文件中 34 try { 35 ImageIO.write(newImg, "jpg", new File(IMAGE_PATH+ "\\trophyP.jpg")); 36 } catch (IOException e) { 37 // TODO Auto-generated catch block 38 e.printStackTrace(); 39 } 40 41 42 } 43 }
結果如下:
trophyP.jpg是trophy.png修改後的結果,從而與其他圖示(如competitor1.jpg和competitor2.jpg)有一樣的大小(100x100)和字尾名(.jpg),從而便於在JFrame上add。
2.將圖片設定為JButton的影象
1 import javax.swing.Icon; 2 import javax.swing.ImageIcon; 3 import javax.swing.JButton; 4 import javax.swing.JFrame; 5 6 public class c { 7 static String IMAGE_PATH = "C:\\Users\\Yi\\eclipse-workspace\\DWS\\src\\dws1"; 8 9 public static void main(String args[]) { 10 JFrame frame = new JFrame("DefaultButton"); 11 frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 12 Icon warnIcon = new ImageIcon(IMAGE_PATH + "\\trophyP.jpg"); 13 JButton button2 = new JButton(warnIcon); 14 frame.add(button2); 15 frame.setVisible(true); 16 frame.pack(); 17 } 18 }
結果如下: