Мы используем изображения SVG в нашем приложении.
Вот как выглядит наш код для изображений JPEG (это рабочий пример из нашего приложения, он похож на this ):
Var
memoryStreamFile: TMemoryStream;
blobFieldFile:TBlobField;
JPEGImage: TJPEGImage;
//ImageJPEG:TImage is a TImage on the form
blobFieldFile:=ClientDataSet.fieldbyName('Image') as TblobField ;
memoryStreamFile := TMemoryStream.Create;
blobFieldFile.SaveToStream(memoryStreamFile);
memoryStreamFile.Position:=0;
JPEGImage := TJPEGImage.Create;
try
JPEGImage.LoadFromStream(memoryStreamFile);
ImageJPEG.Picture.Assign(JPEGImage);
finally
JPEGImage.Free;
end;
Я хотел бы сделать то же, что и выше для изображений SVG:
Var
memoryStreamFile: TMemoryStream;
blobFieldFile:TBlobField;
SVGImage: TSVGImage; -->>This does not exist
//ImageSVG:TImage is a TImage on the form
blobFieldFile:=ClientDataSet.fieldbyName('Image') as TblobField ;
memoryStreamFile := TMemoryStream.Create;
blobFieldFile.SaveToStream(memoryStreamFile);
memoryStreamFile.Position:=0;
SVGImage := TSVGImage.Create;//Sample of how I would envision it to work. Obviously this does not exist
try
SVGImage.LoadFromStream(memoryStreamFile);
ImageSVG.Picture.Assign(SVGImage);
finally
SVGImage.Free;
end;
Мы в основном генерируем код SVG в текстовом формате и хотели бы загрузить текст в TImage
.
Есть ли способ передать это, которого я не вижу?
Я знаю, что могу взять наш SVG-текст и сохранить его в файл, а затем сделать TImage.Picture.LoadFromFile()
, но я предпочитаю делать TImage.Picture.LoadFromStream()
.
Я знаю, что есть другие компоненты которые могут быть использованы, ie Delphi SVG (в настоящее время мы используем это).