名前 題名 ▼ 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分終了。 > さあ〜て、広末涼子ちゃんの写真でもみるか(オイオイ)。 GIF,JPEG,PNG画像ファイル及びLZH,ZIPファイルをアップロードできます.600 x 1200 ピクセルを超える画像は縮小表示されます(画像クリックで拡大表示). (上限122000(120k)バイト) 削除キー Link