Bitmap in der Zwischenablage abspeichern

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
jocsch
User
Beiträge: 31
Registriert: Freitag 4. April 2003, 13:09
Wohnort: Egloffstein (Hundshaupten)

Hallo, Alle!
Folgendes Anliegen: Ich habe via Alt-Druck einen Screenshot des aktiven Fensters in der Zwischenablage erzeugt und möchte diesen nun als gültige Bitmapdatei abspeichern.
Mit

Code: Alles auswählen

win32clipboard.OpenClipboard()
bitmap = win32clipboard.GetClipboardData(win32clipboard.CF_DIB)
win32clipboard.CloseClipboard()
komme ich schon mal an die Zwischenablage ran, aber wie weiter?

Dieser thread http://www.python-forum.de/topic-16268.html?highlight= beschreibt den umgekehrten Weg, aber damit komme ich auch nicht so richtig voran.

Grüsse, jocsch
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Das ist zwar für C, könnte sich aber in Python umsetzen lassen.
MfG
HWK
jocsch
User
Beiträge: 31
Registriert: Freitag 4. April 2003, 13:09
Wohnort: Egloffstein (Hundshaupten)

Sieht hilfreich aus, vielen Dank für den Tip! Über die (hoffentlich erfolgreiche) Umsetzung werde ich dann posten ... :D
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Das, das und das sollte auch noch hilfreich sein.
MfG
HWK
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

Ich hatte gerade mal Lust dazu:

Code: Alles auswählen

import struct
import win32clipboard
win32clipboard.OpenClipboard()
dib = win32clipboard.GetClipboardData(win32clipboard.CF_DIB)
win32clipboard.EmptyClipboard()
win32clipboard.CloseClipboard()
with open('test.bmp', 'wb') as outfile:
    outfile.write('BM')
    outfile.write(struct.pack('lll', len(dib) + 14, 0, 54))
    outfile.write(dib)
MfG
HWK
jocsch
User
Beiträge: 31
Registriert: Freitag 4. April 2003, 13:09
Wohnort: Egloffstein (Hundshaupten)

Super, danke! Freu!

Grüsse, jocsch
Antworten