Forum: Multimedia
Delphi
by TiGü,
4. Apr 2023
Guter Fund auf Stack Overflow. :thumb:
Auf die Idee nach Problemen mit GetDIBits anstatt SetDIBits zu suchen bin ich nicht gekommen.
Mit der Erklärung von Heffernan, dass die "Parameter evaluation order is undefined and differs between x86 and x64.", erklärt sich dann auch alles.
Für meinen eigenen Coding Style würde ich aber auf erzeugende out-Parameter verzichten, sondern lieber eine...
Forum: Multimedia
Delphi
by TiGü,
3. Apr 2023
Kein Plan warum es genau mit SetDIBits scheitert, vielleicht stimmt was mit Pitch und Width nicht.
Aber ich habe den SaveToFile-Pfad von TBitmap nachgebastelt und kopiere jetzt den Buffer von mappedrect.bits zeilenweise in ein Byte-Array, was dann in einen Filestream geschrieben wird.
Den Umweg über das Array kann man sich ggf. sparen und gleich in den Stream schreiben. Es sei dem geneigten...
Forum: Multimedia
Delphi
by TiGü,
31. Mär 2023
Wild, in Win64 geht's bei mir auch nicht.
Ich kann aber auch nur die ersten 3307 Bytes von MappedRect.bits auslesen, danach ist Zugriffsverletzung.
...
HR := CopyBitmap.Map(MapOptions, MappedRect);
if Succeeded(HR) then
begin
SetLength(NewPtr, MappedRect.pitch * SizeU.Height);
Stream :=...
Forum: Multimedia
Delphi
by TiGü,
31. Mär 2023
Ja sicher klappt das bei mir?!
Sonst hätte ich den Quelltext ja nicht gepostet.
Arbeitest du denn an einen richtigen Rechner mit dedizierter GPU (Intel, AMD, Nvidia) oder müssen wir erstmal irgendwelche Probleme wegen Remote Desktop, Terminalsession oder virtueller Maschine mit ungenügender GPU-Unterstützung ausschließen???
CopyBitmap.Map muss ja funktionieren, weil es mit Succeeded(HR)...
Forum: Multimedia
Delphi
by TiGü,
24. Mär 2023
Da der interne Übersetzungsstand in Delphi von Direct2D auf der Version 1.0 festgefroren ist, muss man sich ein bisschen behelfen, um per Direct2D 1.1 "einfach" an die rohen Bitmapdaten zu kommen.
Der Quelltext unten baut auf diesem DowWiki-Beispiel auf: https://docwiki.embarcadero.com/RADStudio/Alexandria/en/Using_the_Direct2D_Canvas#Using_Direct2D_canvas_exclusively
Nach dem Zeichen in der...