• 追加された行はこの色です。
  • 削除された行はこの色です。
#navi(../)
*MediaTrackerで画像のサイズを取得 [#b0529a70]
>編集者:[[Terai Atsuhiro>terai]]~
作成日:2004-12-13~
更新日:&lastmod;
---
category: swing
folder: MediaTracker
title: MediaTrackerで画像のサイズを取得
tags: [MediaTracker, Image, JTable, DragAndDrop, DropTargetListener]
author: aterai
pubdate: 2004-12-13T02:15:06+09:00
description: MediaTrackerを使って画像ファイルからイメージの幅と高さを取得します。
image: https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTPsQMGUsI/AAAAAAAAAeY/B8MAwtKhshY/s800/MediaTracker.png
---
* 概要 [#summary]
`MediaTracker`を使って画像ファイルからイメージの幅と高さを取得します。

#contents
**概要 [#hea6ad7e]
MediaTrackerで画像のサイズを取得します。
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTPsQMGUsI/AAAAAAAAAeY/B8MAwtKhshY/s800/MediaTracker.png)

//http://terai.xrea.jp/swing/mediatracker/screenshot.png
* サンプルコード [#sourcecode]
#code(link){{
private Dimension getImageDimension(Image img, int id) {
  MediaTracker tracker = new MediaTracker((Container) this);
  tracker.addImage(img, id);
  try {
    tracker.waitForID(id);
  } catch (InterruptedException e) {
    ex.printStackTrace();
  }
  return new Dimension(img.getWidth(this), img.getHeight(this));
}
}}

**サンプルコード [#c1b83e7b]
 private Dimension getImageDimension(Image img) {
   MediaTracker tracker = new MediaTracker((Container)this);
   tracker.addImage(img, 0); 
   try{
     tracker.waitForID(0);
   }catch(InterruptedException e) {}
   return new Dimension(img.getWidth(null), img.getHeight(null));
 }
* 解説 [#explanation]
- `MediaTracker`を使って画像ファイルをロードし、イメージが描画される領域の幅と高さを取得
- `JTable`にファイルをドロップすると画像の幅や高さなどを一覧表示

-[[サンプルを起動>http://terai.xrea.jp/swing/mediatracker/sample.jnlp]]
-[[jarファイル>http://terai.xrea.jp/swing/mediatracker/sample.jar]]
-[[ソース>http://terai.xrea.jp/swing/mediatracker/src.zip]]
* 参考リンク [#reference]
- [https://docs.oracle.com/javase/jp/8/docs/api/java/awt/MediaTracker.html MediaTracker (Java Platform SE 8)]
- [[Jpegファイルのコメントを取り出す>Swing/IIOMetadata]]
- [[Fileのドラッグ&ドロップ>Swing/FileListFlavor]]

**解説 [#v4cb99f5]
上記のサンプルではあらかじめjar内に入れておいたpng画像のサイズをラベルに表示しています。ソースコードを変更して、他の画像でも試してみてください。

//**参考リンク
**コメント [#r91e725f]
* コメント [#comment]
#comment
#comment