Screenshot aus einem Panel erstellen. Bild immer schwarz

Screenshot aus einem Panel erstellen. Bild immer schwarz

Beitragvon LazUser » 11. Jul 2012, 09:34 Screenshot aus einem Panel erstellen. Bild immer schwarz

Hallo,

Ich möchte, alle Objekte innerhalb eines Panels in eine Datei speichern(ein Screenshot aus einem bestimmten Bereich).
Hierzu habe ich schon einige Versuche gestartet, unter anderem folgende:

Code: Alles auswählen
procedure SavePanel;
var
  B: TBitmap;
begin
  B: TBitmap.Create;
  try
    B.Width := Panel.Width;
    B.Height := Panel.Height;
    B.Canvas.CopyRect(Rect(0, 0, B.Width, B.Height), Panel.Canvas, Rect(0, 0, Panel.Width, Panel.Height))
    B.SaveToFile("/Users/laz/Panel.bmp");
  finally
    B.Free;
  end;
end;


Oder folgendes

Code: Alles auswählen
var
  DC: HDC;
  R: TRawImage;
  B: TBitmap;
begin
  B := TBitmap.Create;
  R := TRawImage.Create(0, 0);
  try
    DC := GetDC(Panel.Handle);
    RawImage_FromDevice(R, DC, Rect(0, 0, Panel.Width, Panel.Height));
    B.LoadFromRawImage(B, True);
    B.SaveToFile("/Users/laz/Panel.bmp");
  finally
    B.Free;
    R.Free;
  end;
end;


Ich habe diese beiden Varianten unter Windows und MAC OSX Lion 11.7 ausprobiert.
Mit Windows funktionieren beide Varianten, unter MAC keine von beiden. Das abgespeicherte Bild ist immer schwarz, ich vermute das der Screenshot nicht richtig aufgenommen wird.
Hat jemand eine Idee, wie dieses Problem umgesetzt werden kann?
LazUser
 
Beiträge: 2
Registriert: 11. Jul 2012, 09:07

Beitragvon theo » 11. Jul 2012, 10:03 Re: Screenshot aus einem Panel erstellen. Bild immer schwarz

Funktioniert es unter OSX überhaupt, wenn du den ganzen Bildschirm aufnimmst?

http://wiki.freepascal.org/Developing_w ... _erstellen
theo
 
Beiträge: 8247
Registriert: 11. Sep 2006, 18:01

Beitragvon LazUser » 11. Jul 2012, 10:38 Re: Screenshot aus einem Panel erstellen. Bild immer schwarz

Ne, leider auch nicht, zumindest so nicht :(
Ich hatte das so auch probiert und daraufhin einen Link gefunden, wo gesagt wird, dass das unter MAC mit RawImage_FromDevice gehen soll(http://www.lazarus.freepascal.org/index ... ic=16980.0).
Aber leider auch ohne Erfolg.
LazUser
 
Beiträge: 2
Registriert: 11. Jul 2012, 09:07

Beitragvon theo » 11. Jul 2012, 10:46 Re: Screenshot aus einem Panel erstellen. Bild immer schwarz

Tja, Mac halt... :mrgreen:

Das auch schon gelesen?
http://wiki.freepascal.org/Carbon_inter ... hot_taking
theo
 
Beiträge: 8247
Registriert: 11. Sep 2006, 18:01

Beitragvon Scotty » 11. Jul 2012, 10:49 Re: Screenshot aus einem Panel erstellen. Bild immer schwarz

AFAIK kann man unter Darwin_Carbon überhaupt nichts direkt mit dem Canvas machen - zumindest nicht außerhalb von OnPaint. Aber mit Qt könnte es funktionieren.
Scotty
 
Beiträge: 770
Registriert: 4. Mai 2009, 12:24
OS, Lazarus, FPC: Arch Linux, Lazarus 1.3 r44426M FPC 2.6.4 | 
CPU-Target: x86_64-linux-qt/gtk2
Nach oben

• Themenende •

Zurück zu MacOS



Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast

porpoises-institution
accuracy-worried