私はペーストボードにPNGをコピーするには、次を使用することができ、OS Xのフレームワークを使用する(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
きちんとしたスクリプト!スーパーユーザーの次のエントリにも同様のpythonスクリプトが含まれていますが、gnomeでのみ動作します。http://superuser.com/questions/301851/how-to-copy-a-picture-to-clipboard-from-commandline -in-linux – qed
これを改善する方法があります。たとえば、クリップボードのコンテンツをペーストした後、gtk.mainを自動的に削除することはできますか? – qed