creazione di immagini PSD con proprietà livello utilizzando CGImageRef
Domanda
Lavorare in Mac OSX, cacao
Ho un'immagine psd con la proprietà a strati. Voglio ritagliare al rect ritagliare e salvare l'immagine ritagliata con le impostazioni di immagine originale.
Sto usando CGImageRef per tutte le operazioni connesse l'immagine.
Ho allegato il codice che ho usato per ritagliare l'immagine è riportata qui sotto. Ma non riesce a creare l'immagine più livelli.
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 );
}
Soluzione
Non c'è modo di leggere strati separati da file PSD in Mac OS X con le API solo incorporato. Tutto è quasi certamente sta per passare attraverso CGImageSource, e CGImageSource non supporta la lettura strati separati da file PSD. ( la documentazione afferma esplicitamente per la funzione CGImageSourceGetCount
, e la sperimentazione con gli orsi solo CGImageSourceCreateImageAtIndex
fuori.)
Sarà necessario utilizzare una libreria PSD-lettura di terze parti.