Okay, was ich bisher habe, stark vereinfachtes Beispiel, die Scales sind normal dynamisch und passen auch.
Delphi-Quellcode:
procedure MergeSVGAndImage;
var
DestCanvas: TCanvas;
PositionX: Single;
PositionY: Single;
SVGPoint: TSkSvg;
Image1: TImage;
lWidth: Single;
lHeight: Single;
lbitmap: TBitmap;
const
cScreenScale = 1;
begin
Image1 := TImage.Create(nil);
try
Image1.Bitmap.LoadFromFile('Some/Fancy/File.jpg');
SVGPoint := TSkSvg.Create(nil);
try
SVGPoint.Parent := Image1;
SVGPoint.Svg.Source := 'SVG FILE SOURCE';
SVGPoint.Width := 42;
SVGPoint.Height := 42;
SVGPoint.Position.X := 42;
SVGPoint.Position.Y := 42;
DestCanvas := Image1.Bitmap.Canvas;
DestCanvas.BeginScene;
PositionX := SVGPoint.Position.X * cScreenScale;
PositionY := SVGPoint.Position.Y * cScreenScale;
lWidth := SVGPoint.Width * cScreenScale;
lHeight := SVGPoint.Height * cScreenScale;
SVGPoint.PaintTo(DestCanvas, RectF(PositionX, PositionY, lWidth, lHeight));
DestCanvas.EndScene;
finally
SVGPoint.Free;
end;
finally
Image1.Free;
end;
end;
Wenn ich damit arbeite, bekomme ich meine SVG auf das Bild gezeichnet, aber nicht an die Stelle wo ich es gerne hätte. Hab die Befürchtung ich hab die Funktion von Canvas nicht wirklich verstanden
Grüße
PJM