2025.03.06
画像の大きさの取得
はじめに
Javaソースコード
ImageSize.java
001 002 003 004 005 006 007 008 009 010 011 012 013 014 015 016 017 018 019 020 021 022 023 024 025 026 027 028 029 030 031 032 033 034 035 036 037 038 039 040 041 042 043 044 045
import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.io.IOException; public class ImageSize { public static void main( String[] args ) { // 画像サイズ int width, height; // ファイル名 String inname; // 画像格納クラス BufferedImage img = null; // 入力した引数が1つ以上かを調べる if ( 1 > args.length ) { // 入力した引数が1つ未満の場合、使用方法を表示する System.out.println( "ImageSize [入力画像ファイル名]" ); return; } // 入力画像ファイル名をinnameに代入(拡張子の省略なし) inname = args[ 0 ]; try { // inname(入力画像ファイル)を読み込んでimgにセット img = ImageIO.read( new File( inname ) ); } catch (Exception e) { // inname(入力画像ファイル)の読み込みに失敗したときの処理 e.printStackTrace(); return; } // 画像の横方向のピクセル数をwidthに代入 width = img.getWidth(); // 画像の縦方向のピクセル数をheightに代入 height = img.getHeight(); // 画像サイズを表示 System.out.println( "横方向のピクセル=" + width ); System.out.println( "縦方向のピクセル=" + height ); } }
コンパイル ソースコードが「ANSI」の場合
C:\talavax\javasample>javac -encoding sjis ImageSize.java
コンパイル ソースコードが「UTF-8」の場合
C:\talavax\javasample>javac ImageSize.java
実行
C:\talavax\javasample>java ImageSize sampleimage001.jpg
実行結果
横方向のピクセル=1600 縦方向のピクセル=1280
画像サイズの取得に成功すると、上記のようなメッセージを出力します。
次に、与えた引数が1つ未満の場合の実行結果について解説します。
実行
C:\talavax\javasample>java ImageSize
引数なしで実行した結果
ImageSize [入力画像ファイル名]
Javaソースコードの解説
ここからは、このソースコードを上から順番に解説していきます。
001 002 003 004
import java.awt.image.BufferedImage; import java.io.File; import javax.imageio.ImageIO; import java.io.IOException;
Javaのクラスライブラリの中から「java.awt.image.BufferedImage」と「java.io.File」と「javax.imageio.ImageIO」と「java.io.IOException」というパッケージにあるクラスを、このプログラム内で使うために記述します。 この記述により、ImageIOクラスとBufferedImageクラスが利用できるようになります。
006
public class ImageSize {
クラス名を、ImageSizeとしています。
007
public static void main( String[] args ) {
008 009 010 011 012 013
// 画像サイズ int width, height; // ファイル名 String inname; // 画像格納クラス BufferedImage img = null;
015 016 017 018 019 020
// 入力した引数が1つ以上かを調べる if ( 1 > args.length ) { // 入力した引数が1つ未満の場合、使用方法を表示する System.out.println( "ImageSize [入力画像ファイル名]" ); return; }
022 023
// 入力画像ファイル名をinnameに代入(拡張子の省略なし)
inname = args[ 0 ];
025 026 027 028 029 030 031 032
try { // inname(入力画像ファイル)を読み込んでimgにセット img = ImageIO.read( new File( inname ) ); } catch (Exception e) { // inname(入力画像ファイル)の読み込みに失敗したときの処理 e.printStackTrace(); return; }
ImageIO.readメソッド
public static BufferedImage read( File input ) throws IOException
・Fileオブジェクトを復元した結果をBufferedImageに格納します。 パラメータ input : Fileオブジェクト 戻り値 inputを復元したBufferedImageaを返します。
try { ~ } catchは、失敗する可能性がある処理を波括弧で囲み、その処理に失敗したときにcatch { ~ }の波括弧で囲まれた処理を実行するということです。この場合は、画像ファイル名が不正であったり、存在していなかったり、フォーマットが違っているなどが原因で処理が失敗する可能性があります。処理が失敗するとreturnによってmainメソッドを抜けるようにしています。
034 035 036 037 038
// 画像の横方向のピクセル数をwidthに代入 width = img.getWidth(); // 画像の縦方向のピクセル数をheightに代入 height = img.getHeight();
BufferedImage.getWidthメソッド
public static int getWidth()
・BufferedImageの幅を返します。 パラメータ なし 戻り値 横方向のピクセル数
BufferedImage.getHeightメソッド
public static int getHeight()
・BufferedImageの高さ返します。 パラメータ なし 戻り値 縦方向のピクセル数
041 042 043
// 画像サイズを表示 System.out.println( "横方向のピクセル=" + width ); System.out.println( "縦方向のピクセル=" + height );
全ての処理が正常終了すると、ここまで処理が実行されます。
画像サイズに関するコンテンツ
「画像サイズ」に関係があるコンテンツをまとめています。
関連コンテンツ
一般に使われている画像フォーマットには、いろいろな種類があります。画像フォーマットBMP、JPEG、PNG、GIF、TIFFの特徴を知ってますか?
2015.11.29