-PR-
締切り
済み

画像ファイル操作方法

  • 困ってます
  • 質問No.15572
  • 閲覧数87
  • ありがとう数10
  • 気になる数0
  • 回答数4
  • コメント数0

お礼率 44% (35/79)

JAVAのプログラムでアプレットを作成しています。
まだ、素人で何も分からない状態ですが質問があります。
拡張子がjpgのファイルを十枚持っています。その画像は1枚目から順番にめっくていくとアニメーションのような動画となります。順番にめくっていくインターバル時間は自由に設定したいと考えています。

質問1:このような場合オブジェクト指向的な考え方は?
質問2:jpgファイルの扱い方は?

無知な私にどうぞ教えてください。
通報する
  • 回答数4
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

回答 (全4件)

  • 回答No.1
レベル10

ベストアンサー率 41% (52/125)

アニメーションを実現するアプレットなら、JDKをインストールした際にAnimator.javaというサンプルファイルが同時にインストールされていたとおもいますので、そちらを参考にされてはどうでしょうか? jpgファイルに関してはソースに自分でどこにそのファイルが存在するかを指示しておく必要があります。 通常カレントに「images」などというフォルダを作成しておき、1.jpg,2.jpg・・・10.j ...続きを読む
アニメーションを実現するアプレットなら、JDKをインストールした際にAnimator.javaというサンプルファイルが同時にインストールされていたとおもいますので、そちらを参考にされてはどうでしょうか?
jpgファイルに関してはソースに自分でどこにそのファイルが存在するかを指示しておく必要があります。
通常カレントに「images」などというフォルダを作成しておき、1.jpg,2.jpg・・・10.jpgなどと順番をつけておき、for文などでくり返し表示させたりするのではないでしょうか。
この中で時間をアイドルさせれば可能ではないでしょうか?
補足コメント
cyan1110

お礼率 44% (35/79)

申し訳ありません。情報不足でした。私が使用しているのはマイクロソフト社のJ++を使っています。なにか良いサンプルファイルがあればいいのですが、もし知っているサイトがあれば教えてください。
投稿日時 - 2000-12-02 16:58:40


  • 回答No.2
レベル10

ベストアンサー率 28% (42/146)

OOPLな分析を施すと、処理の方法によって二分するかも知れません。 (本当はもっとあるでしょうけど) ・JPEGクラス   属性:JPEGデータ ・リストコレクション   属性:アイテム   操作:追加、削除、挿入、参照  ・グラフィックプレーンクラス   属性:表示 グラフィックプレーン-(保持)->リストコレクション-(保持)->JPEGクラス といようなク ...続きを読む
OOPLな分析を施すと、処理の方法によって二分するかも知れません。
(本当はもっとあるでしょうけど)

・JPEGクラス
  属性:JPEGデータ
・リストコレクション
  属性:アイテム
  操作:追加、削除、挿入、参照 
・グラフィックプレーンクラス
  属性:表示

グラフィックプレーン-(保持)->リストコレクション-(保持)->JPEGクラス

といようなクラス関連が妥当かな、と思います。
JPEGでなく、GIFになっても変更が容易ですし。
あとはコレクションを参照して表示して、インターバル間
sleepするだけかな?


1.グラフィックプレーンなんて殆ど造語です。
Javaにはぴったりマッチするクラスがありましたが
名前忘れました。すごく一般的なものです。

2.コレクション
Javaにはあるんでしたっけ?あると思いますが。
C++なら、テンプレートで作成すると楽です。
この場合、配列(Array)でもいいのかな、別に。

3.はっきり言ってJavaだとこんなことを考えなくとも楽勝です。
でもちょっと意識してみましょう。
お礼コメント
cyan1110

お礼率 44% (35/79)

ありがとうございました。この方法でトライしてみたいと思います。いきずまったら、また教えてください。
投稿日時 - 0000-00-00 00:00:00
  • 回答No.3
レベル7

ベストアンサー率 42% (9/21)

アップレットでアニメーションするんなら 下記URLなんか参考になるかと思いますよ ...続きを読む
アップレットでアニメーションするんなら
下記URLなんか参考になるかと思いますよ
お礼コメント
cyan1110

お礼率 44% (35/79)

勉強になります。ありがとうございました。
投稿日時 - 0000-00-00 00:00:00
  • 回答No.4
レベル7

ベストアンサー率 71% (5/7)

 画像をタイマで差し替えながらアニメーションにするアプレットのJavaプログラムとページHTMLは、 以下のようになります。 -----ページHTML----- <html> <head><title>AnimeApplet</title></head> <body> <applet code=& ...続きを読む
 画像をタイマで差し替えながらアニメーションにするアプレットのJavaプログラムとページHTMLは、
以下のようになります。

-----ページHTML-----

<html>

<head><title>AnimeApplet</title></head>

<body>

<applet code="animeapp" codebase="." width="300" height="300">
<param name="FileName" value="0.gif 1.gif 2.gif 3.gif 4.gif 5.gif 6.gif 7.gif 8.gif 9.gif">
<param name="Interval" value="500">
</applet>

</body>

</html>

-----Javaプログラム(animeapp.java)-----

import java.awt.*;
import java.applet.*;
import java.net.*;

public class animeapp extends Applet implements Runnable {

private Thread TimerThread;
private Image AnimeCell[];
private int Interval, CellNumber, CellCount;
private boolean ImageOK = false;

public void init() {

int Int1;
String Str1[] = getParameter("FileName").split(" ");
Interval = Integer.parseInt(getParameter("Interval"));
TimerThread = new Thread(this);
CellNumber = Str1.length;
CellCount = 0;

AnimeCell = new Image[CellNumber];
for (Int1 = 0; Int1 < CellNumber; Int1 ++) AnimeCell[Int1] = getImage(getDocumentBase(), Str1[Int1]);
ImageOK = true;

};

public void start() {

repaint();
TimerThread.start();

};

public void paint(Graphics g) {

if (ImageOK) g.drawImage(AnimeCell[CellCount], 0, 0, this);

};

public void update(Graphics g) {

paint(g);

};

public void run() {

while(CellCount >= 0) {

try {Thread.sleep(Interval); } catch(Exception ex) {};

if ((CellCount + 1) >= CellNumber) CellCount = 0;
else CellCount ++;

repaint();

};

};

}
このQ&Aのテーマ
このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ