You need to look at NSBitmapImageRep, particularly the
representationUsingType😛roperties:.
Cocoas imaging classes are a little more complex that it first appears. Every NSImage has one or more NSImageReps that represent the image in a specific format. As you are only dealing with bitmap types you can be pretty sure than the rep created when you load the image will be a NSBitmapImageRep. If you were less sure (say you wanted a PNG of a PDF) then you would create an NSImage with no data of the correct size, add an NSBitmapImageRep to it (which you create), lock focus on it, draw the image that you want into that context and unlock the focus. You now have a NSBitmapImageRep with the contents you want to use the method I linked to above.