人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

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

●質問者: westfish
●カテゴリ:コンピュータ
✍キーワード:eclipse Java Swing SWT にわか
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● kyosho
●20ポイント

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...

◎質問者からの返答

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


2 ● kyosho
●80ポイント ベストアンサー

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

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

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

◎質問者からの返答

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

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ