AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein GUI-Design mit VCL / FireMonkey / Common Controls Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

Ein Thema von torud · begonnen am 22. Nov 2013 · letzter Beitrag vom 22. Nov 2013
Antwort Antwort
Seite 1 von 2  1 2   
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#1

Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 12:24
Hallo Wissende,

ich bin gerade dabei mich etwas mit Firemonkey zu beschäftigen. Ich weiss nicht, ob meine Herangehensweise korrekt ist, aber ich habe auf ein 3d-Form einen TLayer3D platziert und darauf ein Bild und ein Textobjekt platziert. Nun würde ich gern dieses Szenario als Bild speichern - am Besten als PNG mit Transparenz.

Layer3D1.Canvas.Bitmap.SaveToFile('c:\temp\test.bmp'); Damit erhalte ich aber nur ein Schwarzes Bild in der Größe des Layers.

Wie könnte ich das also machen? Der Plan ist dynamisch auf dem Formular oder dem Layer Bilder und Texte zu platzieren und dann ein Bild davon zu erstellen. Geht das überhaupt und wenn ja, WIE?
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.304 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 12:58
Delphi Version? (Delphi 7 wohl eher nicht)
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#3

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 13:11
Ups, sorry - XE2 oder XE5 wären möglich.
Danke
Tom
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.304 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 13:22
Vielleicht kommst du mit TLayer3D.PaintToBitmap weiter.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#5

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 13:32
Jo, das geht zwar, aber krieg einfach nur ein scharzes Bild.

Delphi-Quellcode:
var
  bmp : TBitmap;
begin
  bmp := TBitmap.Create;
  Layer3D1.PaintToBitmap(bmp, 1024, 576, $FF000000);
  bmp.SaveToFile('c:\temp\test.bmp');
  bmp.Free;
Danke
Tom
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.820 Beiträge
 
Delphi 10.4 Sydney
 
#6

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 13:52
Delphi-Quellcode:
var
  bmp : TBitmap;
begin
  bmp := TBitmap.Create( Layer3D1.Width, Layer3D1.Height);
  Layer3D1.PaintToBitmap(bmp, 1024, 576, $FF000000);
  bmp.SaveToFile('c:\temp\test.bmp');
  bmp.Free;
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.304 Beiträge
 
Delphi 11 Alexandria
 
#7

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 14:08
Abgesehen von der Füllfarbe wäre das eigentlich die richtige Methode - wenn sie denn funktionieren würde...
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
torud

Registriert seit: 26. Jul 2002
Ort: Sachsen
1.198 Beiträge
 
Delphi XE5 Professional
 
#8

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 14:57
Delphi-Quellcode:
var
  bmp := TBitmap.Create( Layer3D1.Width, Layer3D1.Height);
Leider ist es nicht möglich das Erzeugen des Bitmaps mit den 2 Parametern zu versehen. Was mache ich falsch?

Die Füllfarbe habe ich eigentlich aus unit System.UITypes übernommen. Welcher Wert wäre denn sonst gültig und warum funktioniert das Ganze nicht?
Danke
Tom
  Mit Zitat antworten Zitat
Thom

Registriert seit: 19. Mai 2006
570 Beiträge
 
Delphi XE3 Professional
 
#9

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 15:15
Brobier's mal mit Layer3D1.Buffer - also Layer3D1.Buffer.SaveToFile(...). PaintToBitmap funktioniert - wie schon angemerkt - leider nicht.
Thomas Nitzschke
Google Maps mit Delphi
  Mit Zitat antworten Zitat
Benutzerbild von Uwe Raabe
Uwe Raabe

Registriert seit: 20. Jan 2006
Ort: Lübbecke
9.304 Beiträge
 
Delphi 11 Alexandria
 
#10

AW: Firemonkey - Inhalte von TLayer3D als Bild speichern - Wie?

  Alt 22. Nov 2013, 15:43
Delphi-Quellcode:
var
  bmp := TBitmap.Create( Layer3D1.Width, Layer3D1.Height);
Leider ist es nicht möglich das Erzeugen des Bitmaps mit den 2 Parametern zu versehen. Was mache ich falsch?
Ist auch nicht nötig, da die Bitmap innerhalb PaintToBitmap sowieso mit SetSize angepasst wird.

Die Füllfarbe habe ich eigentlich aus unit System.UITypes übernommen. Welcher Wert wäre denn sonst gültig und warum funktioniert das Ganze nicht?
Die Füllfarbe entspricht TAlphaColorRec.Alpha, was streng genommen eigentlich gar keine Farbe ist. Du kannst ja erst mal eine normale Farbe nehmen, wie white oder silver, bevor du dich an die Transparenz wagst.

Warum es nicht funktioniert, kann ich dir auch nicht sagen. Ich bekomme manchmal zwar etwas in die Bitmap, wenn die Projektion auf Camera steht, aber nicht ganz das was ich will. Ich habe aber jetzt auch keine Zeit den Fehler zu suchen.
Uwe Raabe
Certified Delphi Master Developer
Embarcadero MVP
Blog: The Art of Delphi Programming
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2   

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 14:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2022, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2021 by Daniel R. Wolf