> If you just need to display the image, use an NSImage
> (initWithContentsOfFile).
> If you need a greater control over metadata, use the ImageIO API
> (search CGImageSource in doc and sample codes).

This doesn't work:

CGImageSourceRef source = CGImageSourceCreateWithURL ((CFURLRef) [NSURL
fileURLWithPath:path], NULL);

NSDictionary*    metadata = (NSDictionary
*)CGImageSourceCopyPropertiesAtIndex(source,0,NULL);

I get a dict with: ColorModel, Depth, DensityUnit etc. but no key with the
user text.

This works and retrieves the user text that was embedded in the image). Is
there a more Cocoa-way to do this ather than having to use QuickTime and
FSSpecs?

GraphicsImportComponent  tGIC;
ComponentResult          result;
UserData                 myUD;
Handle                   dataHandle;
CFStringRef              cfString = nil;
FSRef                    theFSRef;
FSSpec                   theFSSpec;
OSErr                    err;

    
CFURLGetFSRef ((CFURLRef) [NSURL fileURLWithPath:path], &theFSRef);
err = FSGetCatalogInfo (&theFSRef, kFSCatInfoParentDirID, NULL, NULL,
&theFSSpec, NULL);

result = GetGraphicsImporterForFile (&theFSSpec, &tGIC);
if (result == noErr)
{
 err = NewUserData(&myUD);
 if (!err)
 {
  result = GraphicsImportGetMetaData (tGIC, myUD);
  if (result == noErr)
  {
    dataHandle = NewHandle (0);
    if (dataHandle)
    {
     err = GetUserDataText (myUD, dataHandle, kUserDataTextComment, 1, 0);
     if (!err)
     {
       HLock (dataHandle);
       cfString = CFStringCreateWithBytes (kCFAllocatorDefault, (UInt8 *)
(*dataHandle), GetHandleSize(dataHandle), kCFStringEncodingMacRoman, false);
                }
            }
        }
    }
 }
}


_______________________________________________

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 [EMAIL PROTECTED]

Reply via email to