Добавить UIImage прямо в файл - PullRequest
0 голосов
/ 31 марта 2010

Я хочу добавить свой UIImage непосредственно в файл вместо преобразования в UIImagePNGRepresentation или UIImageJPGRepresentation (как это занимает время), например:

UIImage *im = [UIImage imageWithCGImage:ref];
[array addObject:im];
NSData *data = [array objectAtIndex:i];
[data writeToFile:path atomically:YES];

Но это показывает ошибку. Так что я могу это сделать любым способом. Заранее спасибо.

1 Ответ

1 голос
/ 31 марта 2010

ваше использование array только запутывает то, что вы в основном делаете:

NSData *data = im;

Что не может работать, потому что im - это UIImage, а не NSData и не подкласс.

То, что вы хотите сделать, это создать новый NSData и инициализировать его с содержимым изображения. Поскольку вы получили CGImageRef, я предлагаю использовать его напрямую, без использования UIImage между ними.

CGDataProviderRef imageDataProvider = CGImageGetDataProvider(ref);
CFDataRef imageData = CGDataProviderCopyData(imageDataProvider);
NSData *data = (NSData*) imageData;

Обратите внимание, что можно приводить CFDataRef к NSData*, потому что CFData «соединен бесплатно» со своим аналогом Cocoa Foundation, NSData.

Надеюсь, это поможет.

(не забудьте отпустить data, когда закончите)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...