- - PR -
ファイル名から画像を取得する方法。
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-12-16 16:19
こんにちは。
指定したフォルダ内にある画像(jpg)ファイルを全て読み込んで処理をするというものをしたいと思っています。 ところが、ファイル名を取得するまではできるのですが、それをImage型配列に入れることができないため、処理を呼ぶことができません。 http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=23829&forum=12&6 ↑これで任意のフォルダ内にあるファイルの名前を取得して img[i]=ImageIO.read(new File(fileList[i].getName())); とか言う風にはできませんよね? ほかに配列に画像を読み込む方法があればお願いします! | ||||
|
投稿日時: 2005-12-16 16:36
どのようなコードを書いて、できなかったのですか ? とりあえずfileList[i]がFileならgetName()とかは不要でしょう。 new String("hoge".toString())と同様ですね。 | ||||
|
投稿日時: 2005-12-16 18:41
fileList が File 型の配列であれば もう一度 File インスタンスを new する必要はありませんね。
getName() で取得できるのはファイル名なので、ファイルがカレントディレクトリにないと読み込めないでしょう。 | ||||
|
投稿日時: 2005-12-16 21:41
とりあえず、今こんな感じです。
最後にエラー文が出て止まってしまいます。 エラー文は ----------------------------------------------------------- java.lang.ArrayIndexOutOfBoundsException: 100 at sabun.SabunAverage.<init>(SabunAverage.java:84) at sabun.SabunAverage.main(SabunAverage.java:63) Exception in thread "main" ----------------------------------------------------------- こんな感じです。問題のソースは↓です。 public SabunAverage(){ JFrame frame = new JFrame("Test"); frame.setBounds(0,0,350,380); ControlPanel cp = new ControlPanel(); JPanel panel = new JPanel(); panel.setLayout(null); File targetDir = null; targetDir = new File("./iii"); if (targetDir.exists() && targetDir.isDirectory()) { File[] fileList = targetDir.listFiles(); for (int i = 0; i < fileList.length; i++) { // System.out.println(fileList[i].getName()); try { if(fileList[i].getName() == "Thumbs.db") break; img[i]=ImageIO.read(fileList[i]); ← ここらでエラー。img[i]に読み込めてない?! avesabun = ASabun(img[i]); ←このメソッドは単体では動くので問題は無いと思います。 } catch (IOException e) { e.printStackTrace(); break; } } } label1.setBounds(10,10,320,240); cp.setBounds(10,270,150,140); panel.add(label1); panel.add(cp); frame.getContentPane().add(panel); frame.setVisible(true); } | ||||
|
投稿日時: 2005-12-16 22:31
img[]はどこで用意してるんでしょうか。
| ||||
|
投稿日時: 2005-12-16 23:19
「ファイル名から画像を取得する方法。」とは関係のない例外ですね。
配列の扱い方について調べてみてはいかがでしょう。 あと ArrayIndexOutOfBoundsException がどんな例外かどうかも。 | ||||
|
投稿日時: 2005-12-16 23:23
img[]はpublic SabunAverage(){ }の外に宣言してあります。
さっきソースをいじっていたら、何とかファイルは読み込まれているみたいです。 しかし、画像ファイルが入っているフォルダの中にあるThumbs.dbというファイルが邪魔をしてエラーになってしまいます。 if(fileList[i].getName() == "Thumbs.db") break; という1文を追加してもうまくいっていないようです。 もう少し考えて見ますが、うまくいかなければまたここに質問したいと思います。 返答ありがとうございました! | ||||
|
投稿日時: 2005-12-17 21:21
いろいろ試していたら、できました!!
ありがとうございました! |