Hi folks,

ich habe folgende Lösung aus dem realbasic Forum bekommen um den Inhalt eines Canvas als Grafikdatei zu sichern:
    h=Window4.Height
    w=Window4.Width
    P = NewPicture(w, h, 32)
    For X = 0 to w -20
      For Y = 0 to h -20
        P.Graphics.Pixel(X, Y) = Window4.graphics.Pixel(X, Y)
      Next
    Next
    if TargetWin32 = true then
      f.SaveAsPicture(p,f.SaveAsPNG) // Siehe entwicklerhandbuch von RB
    else
      f.SaveAsJPEG p
    end if
  end if

Die Methode funktioniert unter MAC OS und Windows zwar aber relativ langsam. Beim 15" Bildschirm dauert die Ausgabe ca. 45s. Das ist ja nicht so schlimm, aber das nur der sichtbare Bereich des Bildschirmes bzw. vom Canvas gesichert wird ist schon störend. Denn mein Canvas ist wesentlich größer als das dazugehöre Window (über die Scrollbalken verschiebe ich das Canvas im Window). Wie kann ich erreichen, dass der gesamte Inhalt vom Canvas als Grafikdatei gesichert wird? PS: Nehme ich als h und w die Größe vom Canvas an, dann wird der Bereich ausserhalb vom Bildschirm schwarz gezeichnet!

Wer hat eine Idee?


Klemens

 

Antwort per Email an