SWTのorg.eclipse.swt.graphics.Imageの内容を持ったSwingのjavax.swing.ImageIconを作る方法を教えてください。おそらくImageから画像のデータを取り出して、それを持ったjava.awt.Imageのインスタンスを作り、それをImageIconのコンストラクタに渡すのだと思います。取得するところはおそらくimage.getImageData().getRGBs()でよいと思うのですが、そのデータを元にjava.awt.Imageを作成するところが特にわかりません。よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2006/11/18 18:40:15
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:kyosho No.2

回答回数2ベストアンサー獲得回数1

ポイント80pt

ソースコードを読むと抵抗を感じてしまいますよね。

ならば一旦、SWTで適切な画像フォーマットでファイルに書き出して、そのファイルをSwingで読み込んで使うのはいかがでしょう?

ファイルIOが発生するのでパフォーマンスを重視されるならお勧めできませんが、一度だけ実行するだけだとか、キャッシュっぽく利用できるならこれでいいかと思います。

id:westfish

snippetのコードを(ライセンスにおびえつつ)コピペして試してみたのですが、なぞの色化けが発生してしまいました。

なるほど、画像のフォーマットはSWTでもAWTでも共通だからそこを経由するという手もありましたね。SWTのImageLoaderで書きだして、ImageIOで読み込んでみたところうまく行きました。ファイルIOに関してはByteArrayOutputStreamとByteArrayInputStreamを使いました。問題なさそうです。

2006/11/18 18:38:59

その他の回答1件)

id:kyosho No.1

回答回数2ベストアンサー獲得回数1

ポイント20pt

SWTの画像から、Swingの画像データへのコンバートということですね。

逆のパターンならありましたので、参考にされたらいかがでしょうか。

http://www-06.ibm.com/jp/developerworks/java/040702/j_j-2dswt.ht...

あと、java.awt.image.BufferedImage と org.eclipse.swt.graphics.ImageData 変換方法がこちらにありました。参考になるかと思います。

http://dev.eclipse.org/viewcvs/index.cgi/org.eclipse.swt.snippet...

http://www.java2s.com/Code/Java/SWT-JFace-Eclipse/Convertbetween...

id:westfish

ううむ。その逆バージョンは読んだのですが、やはりそういう泥臭い方法しかないということでしょうか。

2006/11/18 01:04:38
id:kyosho No.2

回答回数2ベストアンサー獲得回数1ここでベストアンサー

ポイント80pt

ソースコードを読むと抵抗を感じてしまいますよね。

ならば一旦、SWTで適切な画像フォーマットでファイルに書き出して、そのファイルをSwingで読み込んで使うのはいかがでしょう?

ファイルIOが発生するのでパフォーマンスを重視されるならお勧めできませんが、一度だけ実行するだけだとか、キャッシュっぽく利用できるならこれでいいかと思います。

id:westfish

snippetのコードを(ライセンスにおびえつつ)コピペして試してみたのですが、なぞの色化けが発生してしまいました。

なるほど、画像のフォーマットはSWTでもAWTでも共通だからそこを経由するという手もありましたね。SWTのImageLoaderで書きだして、ImageIOで読み込んでみたところうまく行きました。ファイルIOに関してはByteArrayOutputStreamとByteArrayInputStreamを使いました。問題なさそうです。

2006/11/18 18:38:59

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません