在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 );
}
答案 0 :(得分:1)
仅使用内置API无法从Mac OS X中的PSD文件中读取单独的图层。一切几乎肯定会通过CGImageSource,CGImageSource不支持从PSD文件中读取单独的图层。 (The documentation says this explicitly for the CGImageSourceGetCount
function,仅使用CGImageSourceCreateImageAtIndex
的实验证明了这一点。)
您需要使用第三方PSD阅读库。