AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Multimedia Delphi Direct2D.Canvas in einer Bitmap speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Direct2D.Canvas in einer Bitmap speichern

Ein Thema von cocsy · begonnen am 15. Mär 2023 · letzter Beitrag vom 19. Apr 2023
Antwort Antwort
cocsy

Registriert seit: 12. Jul 2011
30 Beiträge
 
Delphi 11 Alexandria
 
#1

Direct2D.Canvas in einer Bitmap speichern

  Alt 15. Mär 2023, 12:39
Hallo Leute,

ich möchte eine mittels Direct2D gezeichneten Fläche in einer Bitmap (oder anderen Graphik) speichern.

Meine Bemühungen sind bisher ins leere gelaufen und bin daher für Ideen offen.

TDirect2DCanvas.CreateBitmap // liefert zwar ein Interface "ID2D1Bitmap" ich kann damit aber nicht viel anfangen

vielen Dank für eure Hilfe
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.490 Beiträge
 
Delphi 7 Enterprise
 
#2

AW: Direct2D.Canvas in einer Bitmap speichern

  Alt 16. Mär 2023, 12:09
Die von Dir angegebene Methode ist auch für das Schreiben einer Bitmap in den 2d Canvas.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
677 Beiträge
 
#3

AW: Direct2D.Canvas in einer Bitmap speichern

  Alt 16. Mär 2023, 19:15
Das neue Bing sagt u.a. das hier:

Delphi-Quellcode:
procedure SaveDirect2DCanvasAsPNG(const FileName: string; const Canvas: TDirect2DCanvas);
var
  png: TPngImage;
begin
  png := TPngImage.CreateBlank(COLOR_RGBALPHA, 8,
    Canvas.RenderTarget.Size.Width,.
    Canvas.RenderTarget.Size.Height);
  try
    Canvas.RenderTarget.GetPixelData(PixelFormat32bppPBGRA,
      png.Scanline[0], png.Height * png.BytesPerScanline);
    png.SaveToFile(FileName);
  finally
    png.Free;
  end;
end;
  Mit Zitat antworten Zitat
cocsy

Registriert seit: 12. Jul 2011
30 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Direct2D.Canvas in einer Bitmap speichern

  Alt 17. Mär 2023, 16:01
Das neue Bing sagt u.a. das hier:

Delphi-Quellcode:
procedure SaveDirect2DCanvasAsPNG(const FileName: string; const Canvas: TDirect2DCanvas);
var
  png: TPngImage;
begin
  png := TPngImage.CreateBlank(COLOR_RGBALPHA, 8,
    Canvas.RenderTarget.Size.Width,.
    Canvas.RenderTarget.Size.Height);
  try
    Canvas.RenderTarget.GetPixelData(PixelFormat32bppPBGRA,
      png.Scanline[0], png.Height * png.BytesPerScanline);
    png.SaveToFile(FileName);
  finally
    png.Free;
  end;
end;
das Funktioniert leider nicht

ich verwende die Vcl.Direct2D; , welche beim RenderTarget nur ein Interface zurückgibt property RenderTarget: ID2D1RenderTarget read GetRenderTarget; dadurch fehlen mir einige Funktionen wie GetPixelData
Grundsätzlich geht der Ansatz in die richtige Richtung, daher danke für die Hilfe
Jan
  Mit Zitat antworten Zitat
Benutzerbild von Olli73
Olli73

Registriert seit: 25. Apr 2008
Ort: Neunkirchen
677 Beiträge
 
#5

AW: Direct2D.Canvas in einer Bitmap speichern

  Alt 17. Mär 2023, 17:15
Auf Nachfrage hat Bing gemeint es müsste Canvas.GetPixelData heißen, aber auch der d2dcanvas scheint die Funktion nicht zu haben. Bing war aber auf Nachfrage fest der Meinung, es hat das in der Delphi unit gefunden...
  Mit Zitat antworten Zitat
cocsy

Registriert seit: 12. Jul 2011
30 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Direct2D.Canvas in einer Bitmap speichern

  Alt 20. Mär 2023, 06:35
Auf Nachfrage hat Bing gemeint es müsste Canvas.GetPixelData heißen, aber auch der d2dcanvas scheint die Funktion nicht zu haben. Bing war aber auf Nachfrage fest der Meinung, es hat das in der Delphi unit gefunden...
korrekt, kann ich auch nicht in der Vcl.Direct2D; finden, vielleicht verwendet Bing eine zukünftige Version

mir ist leider noch nicht geholfen
Jan
  Mit Zitat antworten Zitat
Antwort Antwort

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz