画像をJpeg形式でクリップボードにコピーする(2005/6/7)

 MicroSoftのOffice製品では、画像のコピーを「形式を選択して貼り付け」で「図(JPEG)」や「図(GIF)」「図(PNG)」形式での貼り付けが出来、Bitmapをそのまま貼り付けるよりもファイルサイズを小さくすることで出来ます。クリップボードへどのようなフォーマットで格納されているのかをDEKOさん作のクリップボードフォーマット解析支援ツールACBF.EXE(ジャックボックスの「公開終了のもの...はココ」にあります)で調べたところ、Jpeg,PNG,GIFのコピータイプは各々'JFIF','PNG','GIF'で、メモリには画像データがそのままの形式で保存されていることがわかりました。
 ということで、BitmapをJFIF形式でクリップボードにコピーするサンプルです。Office2000では「図(JPEG)」として認識され、普通に貼り付けするだけで「図(JPEG)」での張り付けとなります。
 なお、GIFとPNGについてもサンプルと同様の処理でクリップボードにコピーすることが出来ます。これらの方法は最新版のMICaptureの「形式を選択してコピー」機能で実現されています。


上記は、PowerPoint2000で画像をコピーした場合。何やら色々なフォーマットがあります。
以下はサンプルプログラムで画像をクリップボードにコピーした場合。フォーマットはJFIFのみです。この状態でPowerPointで貼り付けを実行すればJPEG画像として貼り付けられます。



以下がサンプルソースです。


 サンプルプロジェクトを用意しました。アーカーブには実行形式ファイルも含まれています。パネルにBitmapファイルをドロップすると、その画像を「図(JPEG)」としてクリップボードにコピーします。

サンプルプロジェクトのダウンロード(220,228byte)