Помещение CGImageRef в буфер обмена - PullRequest
1 голос
/ 20 января 2009

Я пытаюсь скопировать CGImageRef в буфер обмена. Я нашел функцию, которая утверждает, что должна делать это, создавая пункт назначения из (нулевого размера), добавляя изображение к месту назначения, завершая, а затем вставляя ссылку в буфер обмена в PasteboardPutItemFlav.

Однако это не работает, поэтому два вопроса:

  1. Является ли правильным способом? (т.е. есть небольшая ошибка или я делаю это неправильно?)

  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 );
}

Ответы [ 2 ]

2 голосов
/ 20 июля 2010

Введите «Купертино скороговорка» Джеймса Демпси

Петр положил ПИКТ на картон.

Устаревший PICT - плохой тип картона для выбора.

Для справки см .: http://developer.apple.com/mac/library/documentation/cocoa/Conceptual/PasteboardGuide106/Articles/pbUpdating105.html

Короче говоря: не рекомендуется помещать PICT на картон.

0 голосов
/ 23 января 2009

Хорошо, я отвечаю на свой вопрос здесь, но вот что я нашел:

Apple хочет, чтобы вы использовали PDF для монтажных работ. Так что, если вы поменяете Pict с PDF, он будет работать просто отлично. Однако MS Word (что я тестировал) только начал позволять вставлять PDF в самой новой версии (которой у меня нет).

Итак, это решение, используйте PDF и требуйте Word 2008.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...