喫茶XRAYトップページ

[▲前のスレッド]

[874] MetaFileのクリップボード転送返信 削除
2006/8/2 (水) 23:28:19 Mr.XRAY
いや〜、まいりました。
職場で、画像一覧というアプリ(よく見る画像のサムネイル表示)を作って利用
してもらっているのですが、そのサムネイルを選択して、該当画像を他のアプ
リで利用するというものです。

最近導入した、たれ幕作成アプリに貼り付かないんです。
それと、エクセルに貼付けた時にすごくでかくなってしまっていたのを修正
しました。原因はネットから獲ってきた画像がWMFで、EMFにうまく変換され
ていなかった、というものです。
何か初心者レベルですが (^_^;)
恥をしのんで公開します。

//====================================================================
//  AFile(フルパス)の画像ファイルをクリップボードにコピーするコード
//  wmfはemfに変換、その他はそのまま
//====================================================================
procedure TplImageForm.CopyImageClick(Sender: TObject);
var
     AFile    : String;
     APict    : TPicture;
     MF       : TMetafile;
     MFCanvas : TMetafileCanvas;
     Ext      : String;
begin
     AFile:='Test.wmf';

     Ext:=UpperCase(ExtractFileExt(AFile));
     if (Ext='.WMF') then begin
       MF:=TMetafile.Create;
       MF.Enhanced:=True;
       try
         MF.LoadFromFile(AFile);
         //EMFでは必ず0にする必要がある。
         MF.Inch:=0;
         MFCanvas:=TMetafileCanvas.Create(MF,0);
         try
           //Draw,StretchDrawでも同じ(範囲指定の場合はStretchを用いる)
           MFCanvas.Draw(0,0,MF);
           //MFCanvas.StretchDraw(Rect(0,0,MF.Width,MF.Height),MF);
         finally
           MFCanvas.Free;
         end;
         Clipboard.Assign(MF);
         Application.ProcessMessages;
       finally
         FreeAndNil(MF);
       end;
     end else begin
       APict:=TPicture.Create;
       try
         APict.LoadFromFile(AFile);
         Clipboard.Assign(APict);
         Application.ProcessMessages
       finally
         FreeAndNil(APict);
       end;
     end;
end;

Enhanced:=True;にすればOKかと思っていたんですが、Inchプロパティも0
にする必要があるんですね。
丸一日かかってしまいました。細かいところを修正してPM 11時20分終了。
さあ〜て、広末涼子ちゃんの写真でもみるか(オイオイ)。


[875] Re:MetaFileのクリップボード転送返信 削除
2006/8/3 (木) 10:03:43 Syake
▼ Mr.XRAYさん
>
> 最近導入した、たれ幕作成アプリに貼り付かないんです。
> それと、エクセルに貼付けた時にすごくでかくなってしまっていたのを修正
> しました。原因はネットから獲ってきた画像がWMFで、EMFにうまく変換され
> ていなかった、というものです。
> 何か初心者レベルですが (^_^;)
> 恥をしのんで公開します。


Tipsを公開されるのは良いことです。
最も私は画像関係には疎くて、何をやってらっしゃるのかさっぱりですけど。
アプリもImageでBmp処理の処理に苦労しているレベルで(^_^;)

> 丸一日かかってしまいました。細かいところを修正してPM 11時20分終了。
> さあ〜て、広末涼子ちゃんの写真でもみるか(オイオイ)。


ご苦労様でした。

[▼次のスレッド]
INCM/CMT
Cyclamen v3.82