質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

解決済

1回答

5109閲覧

javaでの画像の読み込み

chankane

総合スコア139

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

1クリップ

投稿2017/05/11 01:47

###前提・実現したいこと
毎度お世話になっております。
タイトルの通りjavaで画像の読み込みをしたいと思います。現在javaでゲームプログラミングをしています。その際、ゲームで使用する画像の読み込みについて調べてみたら方法がいくつかあり、どれを使えばよいか迷っています。下記のどの方法を(または下記以外を)選択するべきかご教授願います。javaにおけるゲームプログラミングでより一般的な方法がベストです。

###知っている画像読み込み方法

ImageIO クラスで read() する ImageIcon クラスで new ImageIcon() して getImage() する Image クラスで Toolkit.getDefaultToolkit().getImage() し、MediaTracker で読み込み完了まで待機させる。

うろ覚えで申し訳ありません。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

状況によると思います。

  1. ImageIO

BufferedImageを得られるので編集したいならこの方法が最も素直だと思います。コードベース相対でも読めますし絶対パスとしても読めます。手順が簡単で一番応用が利きそうです。

  1. ImageIcon

ラベルなどのアイコンとして使う小さなアイコンイメージを読むためならこれが最適です。背景画像を読み込んだり、加工する対象として読み込むのにこれをわざわざ使っているコードを見かけますが最適とは言いかねます。

  1. MediaTracker

インターネットなど転送速度が遅い回線の向こう側に画像リソースがあり、それを完全に読み込んでから処理を進めるのではなく、読み込みと並行して他の処理(画面の構築など)を進めたい場合に使います。これはアプレット上に大きなイメージや多数のイメージを表示する場合やJavaでブラウザーのようなものを作る場合に用いられることが多いと思います。しかし・・・アプレットは最早役目を終え、ブラウザーを自前実装するまでもなくJavaFXにブラウザービューが提供されていますし、現在のPC性能ではある程度の大きさの画像でもそれほど読み込みに時間がかかるわけでもないといったことを考えれば、それほど活用する場面はないかも知れません。

JavaでPC用のスタンドアロンのゲームを作るなら1.2.のいずれかを使い分けることになると思います。


余談:ちなみに、現在のJavaのGUI標準はswingからJavaFXに変わってしまい、JavaFXでのImageクラスがswingとは別のクラス(javafx.scene.image.Image)になったため、JavaFXに取り組む場合はまた別の手段になります。JavaFXのImageクラスはまだまだ発展途上という感じでswingに比べてかゆいところに手が届かないケースもあります。

投稿2017/05/11 02:17

編集2017/05/11 03:38
KSwordOfHaste

総合スコア18394

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chankane

2017/05/11 03:29

早速ご回答ありがとうございました。 今回使う画像は小さな画像ではないのでImageIOクラスを使おうと思います。 javaFXというものが存在するのですか。初耳です Σ(・ω・ノ)ノ! ボチボチ勉強していこうと思います。 今後ともよろしくお願いいたします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問