- PR -

アプレットでの画像表示

投稿者投稿内容
さたろう
会議室デビュー日: 2005/02/07
投稿数: 11
投稿日時: 2005-02-16 20:55
数箇所だけ書き直して見ました.

引用:

未記入さんの書き込み (2005-02-16 18:32) より:

import java.applet.*;
import java.io.*;
import java.awt.*;

public class TestTestTest extends Applet {

Image img =null;
String S_PATH = "image1.jpg";

public void init() {
try {
FileInputStream in = new FileInputStream(S_PATH);

ByteArrayOutputStream Baos = new ByteArrayOutputStream();
//ObjectOutputStream oos = new ObjectOutputStream(Baos);

byte[] buf = new byte[64];
int len = 0;
while( (len=in.read(buf)) != -1 ) {
Baos.write(buf,0,len);
}
Baos.flush();
img = Toolkit.getDefaultToolkit().createImage(Baos.toByteArray());

in.close();
Baos.close();
//oos.close();

//↓これはいらないですよね??
//img = getImage(getCodeBase(),"image1.jpg");
} catch (Exception e){
System.out.println(e.toString());
}
}
public void paint(Graphics g){
g.drawString("画像を表示します",10,10);
g.drawImage(img,20,10,this);
}
}


ObjectOutputStreamやObjectInputStreamを利用するのは,確か,オブジェクトのバイナリファイルを読み書きするときだったと思います.
今回は画像のバイナリファイルを読み込むのでこれを使うのは間違ってます.
その部分だけ書き直すだけでうまくいくはずです.


[ メッセージ編集済み 編集者: さたろう 編集日時 2005-02-16 21:00 ]
未記入じゃけんど
ベテラン
会議室デビュー日: 2004/11/09
投稿数: 65
お住まい・勤務地: Osaka City
投稿日時: 2005-02-17 11:21
動きました。どうもありがとうございます。

ただ、今のようにローカルにある画像をバイナリに変換して、
イメージデータに変換してアプレットに表示することはできたのですが、
ソケットにて受信した画像(バイナリに変換された)を
アプレットに表示しようとしても、表示することが出来ません。

ためしに受信したバイナリ-をFileOutputStreamに入れて
保存してみたのですが,正しく画像として保存されています。

何か理由があるのでしょうか、知ってる方どうかお願いします。
さたろう
会議室デビュー日: 2005/02/07
投稿数: 11
投稿日時: 2005-02-17 19:49
引用:

未記入さんの書き込み (2005-02-17 11:21) より:
ただ、今のようにローカルにある画像をバイナリに変換して、
イメージデータに変換してアプレットに表示することはできたのですが、
ソケットにて受信した画像(バイナリに変換された)を
アプレットに表示しようとしても、表示することが出来ません。


うーむ,,普通に出来そうな気もするのですが・・・
この出来ない理由は現時点ではわからないです.
できることならば,送信,受信の双方のソースコードを載せていただけたならば,実際に動かしてみながら検討しますよ.

スキルアップ/キャリアアップ(JOB@IT)