Hi Throsten,

what you suggested is a standard routine, but it reads just flattened image as 
it was stored by Photoshop 
to a .psd file.

I need to read layer images that are stored in .psd file. 
The only way I know is using 
>> GraphicsImportSetImageIndex(importer, i);

Where i is an index of image you want to decode from multi-image file - 
Photoshop psd in my case.


Peter


> 
> Message: 1
> Date: Mon, 18 Oct 2010 15:35:25 +0200
> From: Thorsten Lemke <le...@lemkesoft.de>
> Subject: Re: CMYK Text of Photoshop Layer rendered incorrectly
> To: <cocoa-dev@lists.apple.com>
> Message-ID: <c8e219bd.a14ff%le...@lemkesoft.de>
> Content-Type: text/plain;     charset="ISO-8859-2"
> 
> Hi Peter,
> 
> I suggest to use the Core Image Import:
>    CGImageSourceRef imageSource =
>        CGImageSourceCreateWithURL((CFURLRef)[NSURL fileURLWithPath:path],
> NULL);
> ....
> 
> That does handle CMYK, too.
> 
> Thorsten
> 
> 
>> Von: Peter Krajèík <pkraj...@sunteq.sk>
>> Datum: Mon, 18 Oct 2010 14:53:10 +0200
>> An: <cocoa-dev@lists.apple.com>
>> Betreff: CMYK Text of Photoshop Layer rendered incorrectly
>> 
>> Hi,
>> 
>> I am reading Photoshop layer images using this approach:
>> 
>> (simplified code)
>> 
>> for (i=0; i <= imageCount; i++)
>> {
>> unsigned long offset, size;
>> GraphicsImportSetImageIndex(importer, i);
>> GraphicsImportGetDataOffsetAndSize(importer, &offset, &size);
>> 
>> // create a Graphics Exporter component that will write Photoshop data
>> OSErr err = 
>> OpenADefaultComponent(GraphicsExporterComponentType,kQTFileTypePhotoShop,
>> &exporter);
>> 
>> if (err == noErr)
>> {
>>     // set export parameters
>>     Handle bmpDataH = NewHandle(0);
>>     GraphicsExportSetInputGraphicsImporter(exporter, importer);
>>     GraphicsExportSetOutputHandle(exporter, bmpDataH);
>> 
>>     // export data to BMP into handle
>>     unsigned long actualSizeWritten = 0;
>>     err = GraphicsExportDoExport(exporter, &actualSizeWritten);
>> 
>>          if (err == noErr)
>>          {
>> 
>>               HLock(bmpDataH);
>> 
>>               //create a simple image with the tiff data, without the bound
>> information, its rep will stored to layer as CGImageRef
>>               id image = [CIImage imageWithData:[NSData
>> dataWithBytes:*bmpDataHlength:GetHandleSize(bmpDataH)]];
>>               NSBitmapImageRep* rep = [[[NSBitmapImageRep alloc]
>> initWithCIImage:image]autorelease];
>> 
>>               CGImageRef imageRef = rep.CGImage;
>>               self.layerImage =CGImageRetain(imageRef);
>>               HUnlock(bmpDataH);
>>         }
>> 
>>     DisposeHandle(bmpDataH);
>>     CloseComponent(exporter);
>>     }
>> 
>> }

_______________________________________________

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