У меня в настоящее время есть NSData с действительными данными PNG:
NSData* imageData = [bitmapRep representationUsingType:NSPNGFileType properties:nil];
Я записал эти данные в файл:
[imageData writeToFile:@"test.png" atomically:YES];
А сжатие с помощью OptiPNG или PNGCrush дает многообещающие результаты (25% + сжатие).
Я бы хотел выполнить эту задачу в памяти, добавив категорию к NSData, чтобы включить что-то вроде:
[imageData optimizePNGData]
Тем не менее, вызовы файловой системы глубоко интегрированы в OptiPNG и PNGCrush, поэтому ни один из них не подходит для построения в виде библиотеки (например, optipng.a).
Есть ли у кого-нибудь идеи о том, как сделать нечто подобное, не полагаясь на вызовы exec, как это делает большинство оболочек с графическим интерфейсом?