ハンドルから直接TMemorystreamに保存できますか?

解決


TAKA  2006-02-25 15:11:45  No: 20208

質問がおかしければお許しください。
下記のようにBitBltで取得した画像をTBitmapからTMemorystreamに入れる方法が
わかっているのですが、これをTBitmapを介さずにTMemorystreamに入れる事は可能なのでしょうか?

 BitBlt(bmp.canvas.handle, 0, 0, W, H, dc, X, Y, SrcCopy);
 bmp.savetostream(mem);

TBitmapを使うと遅いというイメージがあるので、もしかしたら直接TMemorystreamに書き込む早い方法があるのではないだろうか?と思ってネットで探し回ったのですが見つけきれなかったのでどなたかご存知ないでしょうか?
ちなみにネットからTHandleStream.Createを使えば出来るような感じだったのですがTHandleからTStreamに読み込ませる方法でした。
HDCからTMemorystreamにもこのTHandleStream.Create使えますか?いろいろしましたができませんでした ・・(o_ _)o


えーと  2006-02-25 23:35:04  No: 20209

できません。APIでも何でも、DCのハンドルから直接画像としてビットマップを
得ることはできません。かならず、メモリDC(VCLの TBitmap 相当)を経由
する必要があります。


TAKA  2006-02-26 02:53:47  No: 20210

そうなんですね。TBitmapを介したからと言ってそんなに速度に問題ないならいいのですが、とりあえずその方法で作ってみます。ありがとうございます。


TAKA  2006-03-01 10:58:07  No: 20211


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加