2010年8月24日火曜日

ブラウザのスクリーンキャプチャ

ひょんなことからブラウザのスクリーンキャプチャの情報をゲットできた。
今も自作ブラウザには搭載している機能だけど、普通にDCを取得してキャプチャしていた。しかし、

IHTMLDocument2 → IOleObject
IOleObject::GetExtent()
IHTMLDocument2 → IViewObject
OleDraw()

こんな方法だと長いページもキャプチャできるんですね。
IOleObjectって何、って感じだが何となくやってることはわかる。
OleDraw()なんてのがあるんだね、簡単そう、反則だな。初めて知りました。

しかしChromeの拡張でスクリーンショットものを試してみましたが、画面をスクロールしていく方式だった。何とも原始的だがなるほど、と思った後だけに、やり方はさまざまだな、との感が強い。
なおこの方式でFlashなどもキャプチャできるのかどうかは不明。
それに、そもそもページ全体をキャプチャするのってどうなんでしょうね。不要な広告まで含めてしまうとあんまり意味無かったりする。
私としては自作ブラウザに搭載したキャプチャ機能の方が良い様に思ったりもしました。
私のは、自動でデスクトップ上にタイムスタンプつきのbmpファイルを作成するようにしてます。このほうが編集が楽。
まあ、自分に合わせてつくったから私がやりやすいと思うのは当たり前ですけどね。

0 件のコメント:

コメントを投稿