Re: CMYK Text of Photoshop Layer rendered incorrectly
Re: CMYK Text of Photoshop Layer rendered incorrectly
- Subject: Re: CMYK Text of Photoshop Layer rendered incorrectly
- From: Peter Krajčík <email@hidden>
- Date: Mon, 18 Oct 2010 21:44:25 +0200
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 <email@hidden>
> Subject: Re: CMYK Text of Photoshop Layer rendered incorrectly
> To: <email@hidden>
> Message-ID: <C8E219BD.A14FF%email@hidden>
> 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 <email@hidden>
>> Datum: Mon, 18 Oct 2010 14:53:10 +0200
>> An: <email@hidden>
>> 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 (email@hidden)
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:
This email sent to email@hidden