psd使用CGImageRef创建具有图层属性的图像

时间:2010-08-11 08:21:11

标签: cocoa macos cgimage psd

在Mac OSX中工作,Cocoa

我有一个带有分层属性的psd图像。 我想将其裁剪为裁剪矩形,并使用原始图像的设置保存此裁剪后的图像。

我正在使用CGImageRef进行所有与图像相关的操作。

我附上了用于裁剪图像的代码,如下所示。但它无法创建分层图像。

NSImage *img = [[NSImage alloc]initWithContentsOfFile:imagePath];
NSBitmapImageRep *rep = [[NSBitmapImageRep alloc] initWithData:[img TIFFRepresentation]];
CGImageRef imageRef = [rep CGImage];
CGImageRef cropedImage = CGImageCreateWithImageInRect(imageRef, cropRect);


CGImageDestinationRef idst = CGImageDestinationCreateWithURL( url, type, 1, NULL );
if( idst != NULL ) {

           CGImageDestinationAddImage( idst, image, properties );
           bool success = CGImageDestinationFinalize( idst );

    }

1 个答案:

答案 0 :(得分:1)

仅使用内置API无法从Mac OS X中的PSD文件中读取单独的图层。一切几乎肯定会通过CGImageSource,CGImageSource不支持从PSD文件中读取单独的图层。 (The documentation says this explicitly for the CGImageSourceGetCount function,仅使用CGImageSourceCreateImageAtIndex的实验证明了这一点。)

您需要使用第三方PSD阅读库。