トップページ > 過去ログ > 記事閲覧
画像の一部分をメモリに読み込み
名前:n-k 日時: 2010/03/03 09:36

いつもお世話になっています。 グラフィックデータ制御関数での質問なのですが、 画像の一部分だけを読み込み、という方法はできませんでしょうか? LoadGraph → DerivationGraph と行う手順を踏むのではなくDerivationGraphの引数 SrcGraphHandleの部分を"test.bmp"などにして 最初から一部分を読み込む、という方法です。 もし最初からそのような関数があった場合は申し訳ありません。 どうぞよろしくお願いします。

Page: 1 |

Re: 画像の一部分をメモリに読み込み ( No.1 )
名前:管理人 日時:2010/03/05 23:39

LoadGraph → DerivationGraph をしたくない理由はなんでしょうか? 現時点では画像ファイルの一部分だけを直接を読み込む関数はありませんので 手間だから、という理由でしたらご要望にお応えすることができませんが 「LoadGraph → DerivationGraph だと使っている部分は一部分だけど、 読み込まれているデータ自体は画像全体だからメモリが無駄に消費されて嫌」 ということでしたら、現在の機能だけでも回避手段はあります それは LoadSoftImage と MakeARGB8ColorSoftImage 若しくは MakeXRGB8ColorSoftImage と BltSoftImage と CreateGraphFromSoftImage を使う方法です 例えば Test.bmp の左上 16x16 の部分だけを使ったグラフィックハンドルを作成するには 以下のようにします int GHandle, SFHandle, SMHandle ; SFHandle = LoadSoftImage( "Test.bmp" ) ; // Test.bmp をソフトウエアイメージとして読み込み SMHandle = MakeARGB8ColorSoftImage( 16, 16 ) ; // 16x16サイズの空ソフトウエアイメージを作成 BltSoftImage( 0, 0, 16, 16, SFHandle, 0, 0, SMHandle ) ; // 左上16x16の部分だけを空イメージに転送 GHandle = CreateGraphFromSoftImage( SMHandle ) ; // 16x16サイズのソフトウエアイメージからグラフィックハンドルを作成 DeleteSoftImage( SFHandle ) ; // ファイルから作成したソフトウエアイメージを解放 DeleteSoftImage( SMHandle ) ; // 16x16のソフトウエアイメージを解放 ちょっと面倒ですが・・・
Re: 画像の一部分をメモリに読み込み ( No.2 )
名前:n-k 日時:2010/03/10 09:23

いつもお世話になっています。 説明が不足していました。申し訳ありません。 今回このような仕様ができるか質問した意図は チップサイズが違う画像ファイルが複数存在する関係で LoadGraphで画像を読み込んだファイルを DerivationGraph で使用するのが難しくなってしまったため、 そしてもう一つは管理人様の仰る通りメモリの問題です。 回避手段有難うございます。 この仕様でしたら今回の問題に対応できます。 ご回答有難うございました。

Page: 1 |