javaでダミー画像作成

javaでダミー画像作成

商用環境のデータをテスト環境へコピーした。
データベースの個人情報にはマスクをした。
何が保存されているかわからない、画像のコンテンツはすべて削除した。

しかし画像コンテンツが何もないと、テストでの表示がうまくいっているのかわからない。
それぞれのデータ用に、ファイル名が書かれたPNGイメージを一括作成した。

java 8 の jjs (Nashorn) で作成した。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
var File = Java.type('java.io.File');
var Color = Java.type('java.awt.Color');
var Font = Java.type('java.awt.Font');
var BufferedImage = Java.type('java.awt.image.BufferedImage');
var RenderingHints = Java.type('java.awt.RenderingHints');
var ImageIO = Java.type('javax.imageio.ImageIO');

function createImage(filename) {
    var bufferedImage = new BufferedImage(200, 60, BufferedImage.TYPE_INT_RGB);
    var graphics2D = bufferedImage.createGraphics();
    //
    graphics2D.setColor(Color.BLUE);
    graphics2D.fillRect(0, 0, bufferedImage.getWidth(), bufferedImage.getHeight());
    //
    var font = new Font('Consolas', Font.PLAIN, 30);
    graphics2D.setFont(font);
    graphics2D.setColor(Color.WHITE);
    graphics2D.setRenderingHint(RenderingHints.KEY_TEXT_ANTIALIASING, RenderingHints.VALUE_TEXT_ANTIALIAS_ON);
    graphics2D.drawString(filename, 5, 40);
    // output
    ImageIO.write(bufferedImage, "png", new File(filename));
}

createImage('test.png');

概要

1.BufferedImageを作り、そこからGraphics2Dを取り出す。
2.Graphics2Dに対して描画する。
3.ImageIOを利用して、ファイルに書き出す。

これだけ。

簡単にpngを作成できた。
java8だと、ほかにJPGやGIF、BMPが利用できる。
java9だと、TIFFなども利用できる。
しかし、BMPやTIFFはファイルサイズが大きくなるので利用するときはディスク容量に気を付ける必要がある。

また、文字を出力する場合、何も指定しないとアンチエイリアスされず、ギザギザした文字が描画されてしまう。
そこで、RenderingHintを設定して、アンチエイリアスした文字を書き込むようにする。
これで、綺麗な文字が出力される。

同じタグの記事
同じカテゴリの記事

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA