Mettere un CGImageRef negli Appunti
-
19-08-2019 - |
Domanda
Sto provando a copiare un CGImageRef negli appunti della lavagna. Ho trovato una funzione che afferma che dovrebbe farlo creando una destinazione da (dimensione zero), aggiungendo l'immagine alla destinazione, finalizzando, quindi PasteboardPutItemFlavor il riferimento negli appunti.
Tuttavia non funziona, quindi due domande:
È questo il modo corretto di procedere? (vale a dire, c'è solo un piccolo bug o sto sbagliando?)
-
Che tipo dovrei fare la destinazione? La fonte lo aveva come TIFF, ma la parola non sembra sapere come gestirlo, l'ho cambiato in PICT, che almeno mi ha dato il "incolla". opzione, ma poi ha detto che era troppo grande ...
Codice:
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 );
}
Soluzione 2
Ok, sto rispondendo alla mia domanda qui, ma ecco cosa ho trovato:
Apple vuole che tu usi PDF per i pannelli di cartone. Quindi, se si sostituisce Pict con PDF, funziona abbastanza bene. Tuttavia, MS Word (quello con cui stavo testando) ha iniziato a consentire l'incollaggio di PDF nella versione più recente (che non ho).
Quindi, questa è la soluzione, usa PDF e richiede Word 2008.
Altri suggerimenti
Inserisci " The Cupertino Tongue Twister " di James Dempsey
Peter mise un PICT sul cartone.
PICT obsoleto è un tipo scadente di cartone da scegliere.
Per riferimento vedi: http: / /developer.apple.com/mac/library/documentation/cocoa/Conceptual/PasteboardGuide106/Articles/pbUpdating105.html
In breve: è obsoleto mettere PICT sul pannello di montaggio.