つらねの日記

プログラムの進捗やゲームをプレイした感想などを書き連ねる日記。

BufferedImageで画像を内部描画する

備忘録。
Javaで画像を内部描写する方法を理解したので忘れないように記しておく。

import java.awt.Color;
import java.awt.Graphics;
import java.awt.image.BufferedImage;

import javax.swing.JFrame;


public class IconTest extends JFrame {
	public IconTest(){
		setSize(100, 100);
		setDefaultCloseOperation(EXIT_ON_CLOSE);
		setIconImage(getIcon());
		setVisible(true);
	}

	public BufferedImage getIcon(){
		BufferedImage img = new BufferedImage(64, 64,
				BufferedImage.TYPE_INT_ARGB);
		Graphics g = img.getGraphics();
		g.setColor(Color.black);
		g.fillRect(12, 12, 32, 32);
		g.setColor(Color.blue);
		g.fillRect(24, 24, 16, 16);
		return img;
	}

	public static void main(String[] args) {
		new IconTest();
	}
}


ついでにProcessingのウィンドウもJFrameなので、(日定義済み変数のごとく色は変わらないが)frameという変数を用いることによって各種タイトルやアイコンなどを変更することができる。

void setup() {
  size(300, 150);
  PGraphics g=createGraphics(30, 30);
  g.beginDraw();
  g.background(#ff5555);
  g.fill(#5555ff);
  g.noStroke();
  g.rect(15, 15, 15, 15);
  g.endDraw();
  frame.setIconImage(g.getImage());
  frame.setTitle("素晴らしいタイトル");
  frame.setAlwaysOnTop(true);
}

但し、setup後にも多少の初期化が行われている模様ですべての動作を自由にできるというわけではない。