Javaプログラミング学習サイト ゆるゆるプログラミング

・Javaソースダウンロード(CreateImage2.java)

画像の出力ファイル名(PNG形式)、横のピクセル数、縦のピクセル数、画像の色(RGB)を指定して、PNG形式のファイルを作成するJavaのソースコードです。PNG以外の画像フォーマットで保存する場合は、"result = ImageIO.write( img, "png", new File( outname ) );"の"png"を変更してください。JPEG形式に保存する場合は"png"を"jpg"に変更してください。

このソースについての記事はこちら「画像の新規作成 その2」です。

CreateImage2.javaをダウンロード

ダウンロードしたファイルはzip形式です。解凍して使ってください。Windowsの場合、ダウンロードしたzipファイルをマウスの右ボタンでクリックして表示されるポップアップメニューから「すべて展開(T)」で解凍できます。

import java.awt.image.BufferedImage;
import java.awt.Graphics2D;
import java.awt.Color;
import java.io.File;
import javax.imageio.ImageIO;
import java.io.IOException;

public class CreateImage2 {
	public static void main( String[] args ) {
		// 結果格納フラグ
		boolean result;
		// 画像サイズ
		int width, height;
		// 背景色
		int back_r, back_g, back_b;
		// ファイル名
		String outname;
		// 画像格納クラス
		BufferedImage img = null;

		// 入力した引数が6つ以上かを調べる
		if ( 6 > args.length ) {
			// 入力した引数が6つ未満の場合、使用方法を表示する
			System.out.println( "CreateImage2 [PNG名][幅][高さ][R][G][B]" );
			return;
		}

		// 出力PNG名をoutnameに代入(拡張子".png"省略なし)
		outname = args[ 0 ];

		try {
			// 幅ピクセルをwidthに代入
			width  = Integer.parseInt( args[ 1 ] );
			// 高さピクセルをheightに代入
			height = Integer.parseInt( args[ 2 ] );
			// 赤の輝度(R)をback_rに代入
			back_r = Integer.parseInt( args[ 3 ] );
			// 緑の輝度(G)をback_gに代入
			back_g = Integer.parseInt( args[ 4 ] );
			// 青の輝度(B)をback_bに代入
			back_b = Integer.parseInt( args[ 5 ] );
		} catch ( NumberFormatException e ) {
			// 引数をwidth、heightの変換に失敗したときの処理
			e.printStackTrace();
			return;
		}

		// 画像サイズの検査
		if ( ( 1 > width ) || ( 1 > height ) ) {
			// 画像のサイズに1より小さい値が指定されたとき処理
			System.out.println( "画像サイズが範囲外です" );
			return;
		}

		// RGBの検査(0~255の範囲内か)
		if ( ( 0 > back_r ) || ( 255 < back_r ) ) {
			System.out.println( "背景色Rの値が範囲外です" );
			return;
		}
		if ( ( 0 > back_g ) || ( 255 < back_g ) ) {
			System.out.println( "背景色Gの値が範囲外です" );
			return;
		}
		if ( ( 0 > back_b ) || ( 255 < back_b ) ) {
			System.out.println( "背景色Bの値が範囲外です" );
			return;
		}

		// 24ビットカラーの画像を作成
		try {
			img = new BufferedImage( width, height,
						 BufferedImage.TYPE_INT_RGB );
		} catch ( Exception e ) {
			// 画像作成に失敗したときの処理
			e.printStackTrace();
			return;
		}

		// 背景色で画像全体を塗り潰し
		Graphics2D g = (Graphics2D)img.getGraphics();
		g.setColor( new Color( back_r, back_g, back_b ) );
		g.fillRect( 0, 0, width, height );

		// 24ビットカラーの画像を作成
		try {
			// imgをoutname(出力PNG)に保存
			result = ImageIO.write( img, "png", new File( outname ) );
		} catch ( Exception e ) {
			// outname(出力PNG)の保存に失敗したときの処理
			e.printStackTrace();
			return;
		}

		// 正常に終了
		System.out.println( "正常に終了しました" );
	}
}

このソースについての記事はこちら「画像の新規作成 その2」です。

 

■新着情報

2022.07.07 外部プログラムの実行 exeファイル実行
2022.07.06 完全数 6=1+2+3

■広告

 

 

 

 

Topへ