主题说明了一切:是否可以拍摄剪贴板中的图像并将其保存到Tkinter下的文件中?
答案 0 :(得分:1)
这是一个应该让你在Windows上获得任意剪贴板数据的脚本。
import win32clipboard as clip
# The standard windows clipboard formats
formats = ['CF_OEMTEXT', 'CF_PALETTE', 'CF_TEXT', 'CF_ENHMETAFILE', 'CF_UNICODETEXT',
'CF_BITMAP', 'CF_METAFILEPICT', 'CF_DIB', 'CF_DIBV5']
def getFromClipboard(format):
'""Returns a given type of data from the clipboard.'
data = None
clip.OpenClipboard(0)
if clip.IsClipboardFormatAvailable(format):
data = clip.GetClipboardData(format)
clip.CloseClipboard()
return data
good_formats = []
clip.OpenClipboard(0)
for format in formats:
if clip.IsClipboardFormatAvailable(format):
good_formats.append(format)
clip.CloseClipboard()
# choose among the good formats here
print good_formats
# use the one you picked here
data = getFromClipboard(good_formats[0])
然后data
将是原始图像数据,您可以将其正常保存到文件中。
http://msdn.microsoft.com/en-us/library/ms649013%28v=VS.85%29.aspx
http://docs.activestate.com/activepython/2.4/pywin32/win32clipboard__GetClipboardData_meth.html
提供一些信息,更多内容。
答案 1 :(得分:0)
好的tkinter使用PIL来处理大多数高级图像内容,在这种情况下,这个问题非常简单:只需使用Image.frombuffer(mode, size, data)
表示图像的bytebuffer,然后将其保存为ala im.save(filename)
- 如果你想要一种特殊的格式,你也可以指定它。
如果你想在没有PIL的情况下做到这一点,我认为tkinter不提供开箱即用的那种功能,它的图像支持本身就非常有限。