Domanda

Ho bisogno di convertire CIImage in un formato che può essere scritti su disco.

Attualmente sto usando il seguente codice per convertirlo in formato JPG.

 NSBitmapImageRep* rep = [[[NSBitmapImageRep alloc] initWithCIImage:result] autorelease];

 NSData *JPEGData = [rep representationUsingType:NSJPEGFileType properties:nil];
[JPEGData writeToFile:targetPath atomically:YES]; 

Ma la memoria reale di utilizzo germogli fino a oltre i 100 MB. La mia applicazione mi richiede di gestire un gran numero di immagini quindi ho bisogno di ottimizzare il mio utilizzo della memoria.

Qualcuno può suggerire qualcosa ???

È stato utile?

Soluzione

Se è la memoria cumulativa che è un problema, e non una sola immagine, si può provare avvolgendo le ultime due righe nella propria piscina autorelease:

@autoreleasepool {
    NSData *JPEGData = [rep representationUsingType:NSJPEGFileType properties:nil];
    [JPEGData writeToFile:targetPath atomically:YES];
}
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top