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

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

このソースについての記事はこちら「画像の一部切り出し」です。

Subimage.javaをダウンロード

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

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

public class Subimage {
	public static void main( String[] args ) {
		String inname, outname;		// ファイル名
		BufferedImage img = null;	// 画像格納クラス

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

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

		// 変数の宣言
		int x, y;	// 切り出す左上のピクセル座標
		int w, h;	// 切り出す画像サイズ

		try {
			// 引数を変換し、縁の幅に代入
			x = Integer.valueOf( args[ 2 ] );
			y = Integer.valueOf( args[ 3 ] );
			w = Integer.valueOf( args[ 4 ] );
			h = Integer.valueOf( args[ 5 ] );
		}
		catch( NumberFormatException ne ) {
			System.out.println( "引数が不正です" );
			return;
		}

		if ( ( 1 > w ) || ( 1 > h ) ) {
			System.out.println( "画像サイズが不正です" );
			return;
		}


		// JPEG画像の読み込み
		try {
			// inname(入力JPEG)を読み込んでimgにセット
			img = ImageIO.read( new File( inname ) );

		} catch (Exception e) {
			// inname(入力JPEG)の読み込みに失敗したときの処理
			 e.printStackTrace();
			return;
		}

		// 切り出し処理
		BufferedImage subimg = null;	// 切り出し画像格納クラス
		try {
			subimg = img.getSubimage( x, y, w, h );
		}
		catch ( RasterFormatException re ) {
			System.out.println( "指定した範囲が画像の範囲外です" );
			return;
		}

		// JPEG画像の保存
		try {
			// subimgをoutname(出力JPEG)に保存
			boolean result;
			result = ImageIO.write( subimg, "jpeg", new File( outname ) );
		} catch ( Exception e ) {
			// outname(出力JPEG)の保存に失敗したときの処理
			e.printStackTrace();
			return;
		}

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

このソースについての記事はこちら「画像の一部切り出し」です。

 

■新着情報

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

■広告

 

 

 

 

Topへ