Einzelnen Beitrag anzeigen

fisipjm

Registriert seit: 28. Okt 2013
299 Beiträge
 
#2

AW: Bild auf TImage mit SVG Grafiken zusammenführen (Skia)

  Alt 26. Sep 2023, 10:25
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
  Mit Zitat antworten Zitat