忍者ブログ
[141] [140] [139] [138] [137] [136] [135] [134] [133] [132] [131]

DATE : 2024/03/29 (Fri)
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。


DATE : 2006/08/21 (Mon)

java.awt.image.RenderedImage から java.awt.image.BufferedImage を生成するには、次のような手順で行います。

  1. RenderedImage からカラーモデル(java.awt.image.ColorModel)とラスター(java.awt.image.Raster)を取得する。
  2. ラスターは読み取り専用なので、書き換え可能なラスター(java.awt.image.WritableRaster )を取得する。
  3. WritableRaster と ColorModel から、BufferedImage を生成する。

コードにすると、次のようになります。ここで、source は BufferedImage を生成するための RenderedImage です。(import 文などは省略してあります)

ColorModel colorModel = source.getColorModel();
WritableRaster raster = source.getData().
    createCompatibleWritableRaster();

BufferedImage image = new BufferedImage(colorModel, raster,
    colorModel.isAlphaPremultiplied(), null);

コードに示したとおり、BufferedImage には、WritableRaster や ColorModel からインスタンスを生成できるコンストラクタがあります。

その最後から2番目の引数は、アルファ値を Raster のデータにあらかじめ乗算しておくかどうかを指定します。ここでは特にこだわらないため、ColorModel の設定どおりにしました。

また最後の引数は java.util.Hashtable で、画像のプロパティを設定できます。ただし、今回はプロパティがないので null にしました。(BufferedImage のソースコードを見たところ、null に対応するコードがあったので、特に問題はないと思います)

参考文献

PR
●この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード
●この記事へのトラックバック
この記事にトラックバックする:
忍者ブログ [PR]
ブログ内検索
最近の状況
リンク
カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック
ブログ内検索
最近の状況
リンク
カレンダー
02 2024/03 04
S M T W T F S
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
使用許諾
最新コメント
(08/15)
(05/04)
(03/06)
(03/04)
(09/25)
最新トラックバック