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