Autor | Thema: Bitmap aus Zwischenablage in Datei speichern | | Datum:22.08.01 17:37 
(writer@stories.short.de) | |
Hi @all,
ich hab mal eine Frage:
Nachdem ich mit Sebastians Hilfe (thx noch mal :-)) einen automatischen Screenshot erstellen kann, stehe ich nun vor dem Problem, wie ich die in der Zwischenablage liegende Bitmap in eine Datei speichern kann (das ganze soll ohne "Speichern"-Dialog vor sich gehen, der Name wird automatisch vergeben). Es gibt zwar jede Menge schöner Befehle, wie man BMP's IN die Zwischenablage oder diese in ein PROFAN-Fenster lädt, aber ich hab' nix gefunden, um das eben so hinzukriegen, wie oben gesagt. Ich hab auch schon das Forums-Archiv durchsucht, leider ohne Ergebnis.
Wäre nett, wenn mir einer weiterhelfen könnte ... :-)
BriS
|
| | Datum:22.08.01 18:29 
(joerse@gmx.de) | |
Hallo Britta,
mit:
StartPaint -1
SaveBmp "TESTBILD.BMP",10,10-200,140
EndPaint
sollte es klappen.
Viele Grüße
Jörg
|
| | Datum:24.08.01 09:12 
(writer@stories.short.de) | |
Hallo,
danke für den Versuch, aber das klappt leider nicht - es erscheint immer nur eine Fehlermeldung, daß die Bitmap nicht gespeichert werden kann.
Das muß doch irgendwie gehen???
BriS
|
| | Datum:24.08.01 14:38 
(prof.chaos@netcologne.de) | |
Hallo Britta,
vor dem Startpaint musst du noch mit
mcls 200,140
eine Speicherbitmap mit der Größe 200 × 140 (oder wie groß auch immer) erzeugen.
Gruß,
Sebastian
|
| | Datum:25.08.01 11:03 
(Pascalxd@owl-online.de) | |
Hallo Leute!
Soweit ich das sehe, wird bei Sebastians Demos das Bild in die Zwischenablage gepackt und *nicht* in die Profan-eigene Speicherbitmap.
Hier ein Beispiel, daß Britta helfen könnte
(Nicht sehr elegant, aber was besseres fällt mir im Moment nicht ein):
window 50,50-300,300
'---Fenster darf auch kleiner sein als das Pic im Clipboard!
def IsClipboardFormatAvailable(1) !"USER32","IsClipboardFormatAvailable"
def LockWindowUpdate(1) !"USER32","LockWindowUpdate"
declare Test&,x%,y%
'--------------------------------------Abfrage, ob Bild in Clipboard
Test&=IsClipboardFormatAvailable(2)'---2=CF_BITMAP
ifnot Test&
messagebox("Kein Bild in der Zwischenablage!","Fehler!",0)
end
endif
'--------------------------------------------------------------------
'------------------------normaler Bildinhalt & diverse Dialogelemente
print "Hallo,Test"
print
create("Button",%hwnd,"Test",10,60,50,22)
create("Edit",%hwnd,"...Laber...",10,90,100,22)
'--------------------------------------------------------------------
x%=width(%hwnd)
y%=height(%hwnd)
mcls x%,y%'---------------------Speicherbitmap anlegen
copybmptomem 0,0-x%,y% > 0,0'---Bildinhalt in Speicherbitmap sichern
LockWindowUpdate(%hwnd)'--------Fenster "einfrieren", damit man nichts sieht ;-)
cliploadbmp 0,0;0'--------------Bild aus Clipboard ins Fenster
savebmp "C:\2test\Test.bmp",0,0-%bmpX,%bmpY'--Bild speichern (Pfad bitte anpassen!!)
mcopybmp 0,0-x%,y% > 0,0;0'-----alten Bildinhalt wiederherstellen
LockWindowUpdate(0)'------------Fenster "auftauen"
print "Bild wurde gespeichert"
waitkey
HTH
Pascal
|
| | Datum: 25.08.01 11:25 
(Pascalxd@owl-online.de) | |
Oh,Oh...
Da hab' ich vor lauter Bäumen den Wald nicht gesehen :-(
Jörg S. und Sebastian S. hatten recht: Es geht *direkt* über die Speicherbitmap wesendlich einfacher:
window 50,50-600,300
startpaint -1
cliploadbmp 0,0;0'---Dummy-Aktion, um %bmpX & %bmpY zu setzen
endpaint
mcls %bmpX,%bmpY'----Speicherbitmap anlegen
startpaint -1
cliploadbmp 0,0;0
savebmp "C:\2test\Bild.bmp",0,0-%bmpX,%bmpY'--Bild speichern
endpaint
Sorry, Leute!
Pascal
|
|
|