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

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

指定したRGB値と同じ色のピクセル(画素)数をカウントするJavaソースコードです。対象の画像ファイル名とRGBの値はコマンドパラメータで渡すようにしています。

このソースについての記事はこちら「指定色の画素数取得」です。

NumberOfPixels.javaをダウンロード

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

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

public class NumberOfPixels {
	public static void main( String[] args ) {
		// 画像サイズ
		int width, height;
		// カウントする色
		int rn, gn, bn;
		// ファイル名
		String inname;
		// 画像格納クラス
		BufferedImage img = null;

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

		// 入力画像名をinnameに代入(拡張子省略なし)
		inname  = args[ 0 ];

		// 指定色を代入
		try {
			rn = Integer.valueOf( args[ 1 ] );
			gn = Integer.valueOf( args[ 2 ] );
			bn = Integer.valueOf( args[ 3 ] );
		}
		catch( NumberFormatException ne )
		{
			System.out.println( "引数が不正です" );
			return;
		}

		// 画像の読み込み
		try {
			// inname(入力画像)を読み込んでimgにセット
			img = ImageIO.read( new File( inname ) );
		} catch (Exception e) {
			// inname(入力画像)の読み込みに失敗したときの処理
			 e.printStackTrace();
			return;
		}


		// 画像の横方向のピクセル数をwidthに代入
		width = img.getWidth();

		// 画像の縦方向のピクセル数をheightに代入
		height = img.getHeight();


		// 指定した色のピクセルを数える
		int r, g, b, color;
		int number;

		number = 0;
		for ( int y = 0; y < height; y++ ) {
			for ( int x = 0; x < width; x++ ) {
				// 色を取得
				color = img.getRGB( x, y );

				// 色をr,g,bに分解
				r = ( color >> 16 ) & 0xff;
				g = ( color >> 8 ) & 0xff;
				b = color & 0xff;

				// 色の判定
				if ( ( rn == r ) && ( gn == g ) && ( bn == b ) )
					++ number;
			}
		}

		// 結果を表示
		System.out.println( "全ピクセル数 : " + width * height );
		System.out.println( "ピクセル数 : " + number );
	}
}

このソースについての記事はこちら「指定色の画素数取得」です。

 

■新着情報

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

■広告

 

 

 

 

Topへ