使用OS X上的框架,我可以使用下面的PNG复制到剪贴板(在C - 很明显,我可以使用NSPasteboard与可可):如何使用X11复制到剪贴板?
#include <ApplicationServices/ApplicationServices.h>
int copyThatThing(void)
{
PasteboardRef clipboard;
if (PasteboardCreate(kPasteboardClipboard, &clipboard) != noErr) {
return -1;
}
if (PasteboardClear(clipboard) != noErr) {
CFRelease(clipboard);
return -1;
}
size_t len;
char *pngbuf = createMyPNGBuffer(&len); /* Defined somewhere else */
if (pngbuf == NULL) {
CFRelease(clipboard);
return -1;
}
CFDataRef data = CFDataCreateWithBytesNoCopy(kCFAllocatorDefault, pngbuf,
len, kCFAllocatorNull);
if (data == NULL) {
CFRelease(clipboard);
free(pngbuf);
return -1;
}
OSStatus err;
err = PasteboardPutItemFlavor(clipboard, NULL, kUTTypePNG, data, 0);
CFRelease(clipboard);
CFRelease(data);
free(pngbuf);
return 0;
}
我感兴趣的移植此功能Linux/* BSD平台。我怎样才能使用X复制这个?
非常感谢。非常有用,用compiz截图工具! – Drasill 2011-07-08 13:58:38
整齐的脚本!以下超级用户也包含一个类似的python脚本,但它只能在gnome下运行:http://superuser.com/questions/301851/how-to-copy-a-picture-to-clipboard-from-command-line -in-linux – qed 2012-06-25 09:11:29
虽然有些方法可以改进。例如,一旦剪贴板中的内容被粘贴,我们可以自动杀死gtk.main吗? – qed 2012-06-25 09:21:42