CGImageRef をクリップボードのペーストボードにコピーしようとしています。(サイズがゼロの)から宛先を作成し、画像を宛先に追加し、ファイナライズしてから、参照をクリップボードにPasteboardPutItemFlavorすることで、これを行う必要があると主張する関数を見つけました。
ただし、機能しないため、2 つの質問:
これは正しい方法ですか?(つまり、小さなバグがあるだけですか、それとも間違っていますか?)
目的地はどのタイプにすればいいですか?ソースにはTIFFがありましたが、それを処理する方法がわからないようです。PICTに変更しました。少なくとも「貼り付け」オプションが表示されましたが、大きすぎると言いました...
コード:
void copyCGImageRefToPasteboard(CGImageRef ref)
{
OSStatus err = noErr;
PasteboardRef theClipboard;
err = PasteboardCreate( kPasteboardClipboard, &theClipboard );
err = PasteboardClear( theClipboard );// 1
CFMutableDataRef url = CFDataCreateMutable(kCFAllocatorDefault, 0);
CFStringRef type = kUTTypePICT;
size_t count = 1;
CFDictionaryRef options = NULL;
CGImageDestinationRef dest = CGImageDestinationCreateWithData(url, type, count, options);
CGImageDestinationAddImage(dest, ref, NULL);
CGImageDestinationFinalize(dest);
err = PasteboardPutItemFlavor( theClipboard, (PasteboardItemID)1, type, url, 0 );
}