Ich suche eine Möglichkeit, mit PIL erzeugte Bilddaten in die Windows-Zwischenablage zu bekommen, und zwar aus einem Konsolenprogramm.
Zu http://sourceforge.net/projects/pywin32/ finde ich an Doku nur
http://docs.activestate.com/activepytho ... board.html
Hmm, hier sind im Zusammenhang Bildformate erwähnt:
http://code.google.com/p/enso/source/br ... e.py?r=133
Und hier evtl. sogar die Lösung, allerdings kann ich kein Japanisch (Pythonisch auch nicht richtig):
http://d.hatena.ne.jp/ousttrue/20080125/1201280065
Vielleicht mit dem kombiniert:
http://www.pythonware.com/library/pil/h ... agewin.htm
Das probiere ich morgen mal aus.
Bilddaten -> win32 clipboard / zwischenablage
Code: Alles auswählen
win32clipboard.SetClipboardData(win32clipboard.CF_DIB, ImageWin.Dib(im))
TypeError: The object must support the buffer interfaces
Andernfalls ist mir auch mit einem programm geholfen, dass eine bilddatei oder daten über pipe in die zwischenablage schreibt.
für powershell gibt es da wohl hilfreiche user-extensions, aber das hat nicht jeder.
Dieser Code speichert zumindest etwas im Clipboard. Es kann aber von den gängigen Grafikprogrammen nicht gelesen werden.Auch das speichern von BMP- oder TIFF-Dateien hat nicht weitergeholfen.
MfG
HWK
Code: Alles auswählen
import Image, ImageWin
import win32clipboard
im = Image.open(dein_bild)
win32clipboard.OpenClipboard(0)
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32clipboard.CF_BITMAP, ImageWin.Dib(im).tostring())
win32clipboard.CloseClipboard()
MfG
HWK
So funktioniert es:MfG
HWK
Code: Alles auswählen
import cStringIO
import Image
import win32clipboard, win32ui
im = Image.open(dein_bild)
f = cStringIO.StringIO()
im.save(f, 'BMP')
f.seek(0)
bmp = win32ui.CreateBitmap()
bmp.LoadBitmapFile(f)
f.close()
win32clipboard.OpenClipboard(0)
win32clipboard.EmptyClipboard()
win32clipboard.SetClipboardData(win32clipboard.CF_BITMAP, bmp.GetHandle())
win32clipboard.CloseClipboard()
HWK