有時候不想把圖片資源放在目錄里,讓用戶看到,我用的方法是將圖片的像素矩陣存在代碼里。可能比較笨,具體做法是:
MediaTracker mt = new MediaTracker(aFrame); //媒體跟蹤器
Image img = Toolkit.getDefaultToolkit().createImage("畫刷.jpg"); //得到圖片
mt.addImage(img, 1);
try {
mt.waitForAll();
}
catch (InterruptedException ex) {
}
BufferedImage bi = new BufferedImage(16, 16, BufferedImage.TYPE_INT_RGB);
bi.getGraphics().drawImage(img, 0, 0, 16, 16, f);
int[] rbg = new int[bi.getWidth() * bi.getHeight()];
bi.getRGB(0, 0, 16, 16, rbg, 0, 16); //利用BufferedImage得到像素矩陣
for (int i = 0; i < rbg.length; i++) {
System.out.print(rbg[i] + ","); //打印
}
再在代碼中創建靜態對象
private static int[] penPixels = {
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215, -16777216, -16777216, -16777216, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, -16777216, -2031616, -2031616, -2031616, -16777216, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, -16777216, -2031616, -1, 16777215, -16777216, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
-16777216, -16777216, -2031616, -1, -16777216, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
-16777216, -256, -16777216, -16777216, -16777216, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, -16777216,
-256, -1, -1842205, -16777216, 16777215, 16777215, 16777215, 16777215,
16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, -16777216, -1,
-256, -16777216, -16777216, 16777215, 16777215, 16777215, 16777215,
16777215,
16777215, 16777215, 16777215, 16777215, 16777215, -16777216, 16777215,
-256, -1842205, -16777216, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, -16777216, -256, -1,
-16777216, -16777216, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215,
16777215, 16777215, 16777215, 16777215, -16777216, -256, -1, -1842205,
-16777216, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215,
16777215, 16777215, 16777215, 16777215, -16777216, -16777216, -256,
-16777216, -16777216, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, -16777216, -16777216, -16777216,
-16777216, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, -16777216, -16777216, -16777216,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, -16777216, -16777216, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215,
16777215, 16777215, 16777215, 16777215, -16777216, 16777215, 16777215,
16777215, 16777215, 16777215, 16777215, 16777215, 16777215, 16777215,
16777215, 16777215
};//打印出來的矩陣
private static MemoryImageSource misPen = new MemoryImageSource(16, 16,
penPixels, 0, 16);
public static Image imgPen = Toolkit.getDefaultToolkit().createImage(misPen);
這樣就可以直接使用imgPen圖片了。