「EPSの表示」記事をベースにPostScriptファイルからMetaFileのみを取り出そうとしているんですが、上手くいきません。
分かる方教えて頂けますか?
type
TPSBuffer =packed record
Magic : Dword; // $C6D3D0C5
PostScriptPos : Dword;
PostScriptSize : Dword;
MetaFilePos : Dword; // メタファイルでない場合は0
MetaFileSize : Dword; // メタファイルでない場合は0
TIFFPos : Dword; // TIFFファイルでない場合は0
TIFFSize : Dword; // TIFFファイルでない場合は0
end;
//
implementation
//PostScriptメタファイルの読み込み
procedure TfrmMain.PostScriptReadClick(Sender: TObject);
var
PSB:TPSBuffer;
PSF:TFileStream;
MS:TMemoryStream;
BGMetaFile:TMetaFile;
begin
if OpenDialog.Execute then
begin
PSF := TFileStream.Create(OpenDialog.FileName,fmOpenRead);
ZeroMemory(@PSB,SizeOf(TPSBuffer);
PSF.ReadBuffer(PSB,SizeOf(TPSBuffer)); //PSF→PSBにバッファ読み出し
try
if not((PSB.MetaFilePos = 0) or (PSB.MetaFileSize = 0)) then
begin
MS := TMemoryStream.Create;
PSF.Position := PSB.MetaFilePos;
MS.CopyFrom(PSF,PSB.MetaFileSize);
MS.Position := 0;
BGMetaFile.LoadFromStream(MS);
end;
finally
MS.Free;
PSF.Free;
end;
//イメージいっぱいに描画 Image.Canvas.StretchDraw(Rect(0,0,Image.Width,Image.Height),BGMetaFile);
end;
end;
//
「TOOLバーのフローティングはどうなった?」ってツッコミについては、しばらくクラスの勉強をしてからということでご容赦ください。σ(^_^; )
ツイート | ![]() |