★★VB初心者質問スレ Part9(´・ω・`)★★
■ このスレッドは過去ログ倉庫に格納されています
0087デフォルトの名無しさん
NGNGPicture2のJPEGのDDBをDIBピクチャに変換し、Picture2にDIBピクチャを入れ替えました。
もちろんきちんと画像が表示されるのですが、問題はそこから先なのです。
成功する方法は
SavePictureで適当にBMP変換&保存し、
buffer = CreateCompatibleDC(Picture1.hdc)でメモリDCを作成し、
buffer2 = LoadImage・・・で先ほど保存したBMPをLoadし、
SelectObject buffer, buffer2をして
StretchBlt Picture1.hdc・・・buffer・・・で拡大表示したピクチャをPicture1に表示。
これはうまくいくのですが、HDDに保存せずメモリ上で全ての作業を行いたいのですが、
とりあえず、私なりに
buffer = CreateCompatibleDC(Picture1.hdc)でメモリDCを作成し、
buffer2 = CopyImage(Picture2.hdc・・・とやったのですが、戻り値が0でエラーだったので、
DIBなのがいけないのかな?と思い、
(そもそもこのCopyImageの使い方がいいのかが分かりません。ネットで色々探しても、10件も
HITしません(泣、MSDNではピクチャを複製すると書いてありました)
buffer1 = CreateCompatibleBitmap(Picture2.hdc・・・として、BMPに変換し(ハンドルを一応受け取りました)、
buffer2 = CopyImage(buffer1・・・をしたら、戻り値が0じゃないのでいいのかなと思ったのですが、
SelectObject buffer, buffer2をして
StretchBlt Picture1.hdc・・・buffer・・・しましても、Picture1に何も表示されませんでした。
Bitbltでも同様でした。CopyImage(Picture2,Picture.handle・・・でもハンドルが戻ってくるのですが、
画像が表示されずダメでした。一応、Bitbltの戻り値が1が戻ってくるので、処理はミスっていない
ようなのですが・・・。
ここの知識は乏しく、根本的に間違ったことをしているかもしれません(泣
ぜひ、ご教授お願いします。よろしくお願いします。
最低限使いたい関数はCopyImage(多分、LoadImageと結果は似てると思うのですが・・・)と
StretchBlt(Bitblt)です。LoadImageは拡大読み込みにアンチエイリアスかけてくれるのですけど、
CopyImageはどうなのか分かりません。かけてくれるのかな・・・。
■ このスレッドは過去ログ倉庫に格納されています