PSD Создание изображений со свойствами слоя с использованием CGImageRef - PullRequest
0 голосов
/ 11 августа 2010

Работа в Mac OSX, Какао

У меня есть изображение 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 Ответ

1 голос
/ 11 августа 2010

В Mac OS X невозможно прочитать отдельные слои из PSD-файлов, используя только встроенные API. Все почти наверняка пройдет через CGImageSource, а CGImageSource не поддерживает чтение отдельных слоев из PSD-файлов. ( В документации это явно сказано для функции CGImageSourceGetCount , и эксперименты с использованием только CGImageSourceCreateImageAtIndex подтверждают это.)

Вам нужно будет использовать стороннюю библиотеку для чтения PSD.

...