矢量图标准很多,一般每种行业都有领头羊!
如SVG为工业矢量图标准,Flash为网络矢量图标准,EPS为平面设计的标准,DXF是AutoCAD软件标准,
CGM为三维设计中的矢量图标准,HPGL是HP绘图仪支持的格式,其他还有很多。。。。。。
矢量图与一般的图像文件最大的不同之处在于矢量格式文件能实现无级缩放不变形,也就是与图形绘制
面积无关,一般都能用绘图仪来输出。而图像文件往往以点阵形式储存,无法实现无极缩放。
下面以WMF格式的文件为例,WMF为WIN下一种矢量格式的图元文件(Windows Metafile)。
将WMF文件转换为BMP文件:
procedure TForm1.Button1Click(Sender: TObject);
var
MonImage : TImage;
MonMetaFile : TMetaFile;
X,Y : Integer;
begin
Image1.LoadFromFile('C:/my.WMF');
X := Image1.Picture.Width;
Y := Image1.Picture.Height;
MonImage := TImage.Create(Self);
MonImage.Width := X;
MonImage.Height := Y;
MonImage.Canvas.Draw(0,0,Image1.Picture.Graphic);
Image2.Picture := MonImage.Picture;
MonImage.Free;
End;
将文件储存为WMF格式:
var
Form1 : TForm1;
S : TFileStream;
Meta : TMetaFile;
procedure TForm1.Button1Click(Sender: TObject);
begin
Meta := TMetaFile.Create;
With TMetaFileCanvas.CreateWithComment(Meta, 0,
'Alex Fedorov','MetaDemo Project') do
try
Brush.Color := clRed;
Ellipse(10, 10, 100, 100);
finally
Free;
end;
Form1.Canvas.Draw(0,0, Meta);
Meta.SaveToFile('C:/META.EMF');
S := TFileStream.Create('C:/METAS.WMF', fmCreate);
Meta.SaveToStream(S);
S.Free;
Meta.Free;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Meta := TMetaFile.Create;
S := TFileStream.Create('C:/METAS.WMF', fmOpenRead);
Meta.LoadFromStream(S);
Form1.Canvas.Draw(100,100, Meta);
S.Free;
Meta.Free;
End;