• 追加された行はこの色です。
  • 削除された行はこの色です。
TITLE:MediaTrackerで画像のサイズを取得
#navi(../)
RIGHT:Posted by [[terai]] at 2004-12-13
*MediaTrackerで画像のサイズを取得 [#b0529a70]
MediaTrackerで画像のサイズを取得します。
---
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`を使って画像ファイルからイメージの幅と高さを取得します。

-&jnlp;
-&jar;
-&zip;
#download(https://lh4.googleusercontent.com/_9Z4BYR88imo/TQTPsQMGUsI/AAAAAAAAAeY/B8MAwtKhshY/s800/MediaTracker.png)

#screenshot

**サンプルコード [#c1b83e7b]
#code{{
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));
* サンプルコード [#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));
}
}}

**解説 [#v4cb99f5]
上記のサンプルでは、jarファイル内にあるpng画像のサイズをラベルに表示しています。ソースコードを変更して、他の画像でも試してみてください。
* 解説 [#explanation]
- `MediaTracker`を使って画像ファイルをロードし、イメージが描画される領域の幅と高さを取得
- `JTable`にファイルをドロップすると画像の幅や高さなどを一覧表示

**参考リンク [#jc749171]
-[[Jpegファイルのコメントを取り出す>Swing/IIOMetadata]]
* 参考リンク [#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]]

**コメント [#r91e725f]
* コメント [#comment]
#comment
#comment