> On 22 Feb 2016, at 1:30 PM, Ken Thomases <k...@codeweavers.com> wrote: > > On Feb 21, 2016, at 6:47 PM, Graham Cox <graham....@bigpond.com> wrote: >> >> So is there a way, given that if +canInitWithPasteboard: returns YES, to get >> the (NS)data off the pasteboard in whatever format it’s in, knowing that >> it’s good for making an image? > > You can use [NSImage readableTypesForPasteboard:pasteboard] (a method from > the NSPasteboardReading protocol) to get the list of UTIs for the types that > NSImage can import. Then, you can enumerate over [pasteboard > pasteboardItems] and, for each item, query -availableTypeFromArray:. If the > item provides one of the types that NSImage can import from, you can then > query -dataForType: with that type. Not only do you then have the original > data, but you have the UTI for it, as well. > > If more than one item provides a type, then the pasteboard effectively > contains multiple images. Presumably, -initWithPasteboard: would only take > the first, although the modern way, using -[NSPasteboard > readObjectsForClasses:options:], would give you them all. > > All of that said, though, keep in mind that most Mac apps will put a bitmap > image on the pasteboard as TIFF data, regardless of the original bitmap file > format. That is, if an app creates an NSImage from a PNG file and then > writes it to the pasteboard using -[NSPasteboard writeObjects:], NSImage will > store TIFF data. For historical reasons, TIFF is the standard image > interchange format on OS X. (If you manually put public.png data on the > pasteboard, that will survive intact, although the system will _add_ a TIFF > version of the same image for the sake of compatibility with apps which can > only accept TIFF.) > > Regards, > Ken >
Thanks, I figured it would be a bit like this. Shame about that TIFF conversion, it’s a pain in the proverbial when moving JPGs and PNGs around. —Graham _______________________________________________ Cocoa-dev mailing list (Cocoa-dev@lists.apple.com) Please do not post admin requests or moderator comments to the list. Contact the moderators at cocoa-dev-admins(at)lists.apple.com Help/Unsubscribe/Update your Subscription: https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com This email sent to arch...@mail-archive.com