On Aug 11, 2009, at 11:39 PM, Renzil D'Souza wrote:

Once I get the CGImageSourceRef, I make a call to
CGImageSourceCopyProperties() passing it the imageSource . But this always returns a NULL. If I output this CGImageRef to a file, and then read it back as a CGImageSource, and then call CGImageSourceCopyProperties(), it works fine and gives me the required properties. But I need it to work without
having to output an image file.

DPI is a function of specific images in an image file, not of the entire file itself (which is what your getting when you call CGImageSourceCopyProperties). You want to call CGImageSourceCopyPropertiesAtIndex instead for the particular image you want to get properties for.

From my experience on Windows, DPIHeight and DPIWidth are properties of the
display device the image is drawn on, and not properties of the image
itself.

They are properties of both. In the case of printing, you are using a fixed grid at 72 PPI. Your source image of course has its own DPI that determines the actual size of the image in real world units. You combine the two to print or display an image at its natural size.

And what is kCGImagePropertyOrientation?

Images don't necessarily have to be oriented with with pixels neighboring columns adjacent on a row of pixels and the orientation reflects this. The 8 defined orientations basically take into account that you can rotate and mirror an image relative to how its pixels are actually ordered.

This is a general property of images, although not supported (or used) in all formats.

Is it that the orientation of a saved image file can be one of a number of enumerations, but the orientation of a CGImageRef is always the default orientation?


Effectively, CGImage has no support for orientations so if an image is meant to be displayed in a different orientation, then it will be drawn incorrectly by Quartz without applying the required transform first.

Now that said, NSImage may be a much simpler method of doing this, so you may want to investigate that alternative instead.
--
David Duncan
Apple DTS Animation and Printing

_______________________________________________

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:
http://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to