質問がおかしければお許しください。
下記のように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
できません。APIでも何でも、DCのハンドルから直接画像としてビットマップを
得ることはできません。かならず、メモリDC(VCLの TBitmap 相当)を経由
する必要があります。
そうなんですね。TBitmapを介したからと言ってそんなに速度に問題ないならいいのですが、とりあえずその方法で作ってみます。ありがとうございます。
済
ツイート | ![]() |