В моем приложении я использую камеру, чтобы сделать несколько снимков.Эти фотографии необходимо отправить за один раз.По этой причине я пытаюсь реализовать функцию сжатия фотографий, которые я сделал.
Я искал в Интернете несколько библиотек, которые я мог бы использовать в своем проекте.Я выпустил Objective Zip (http://code.google.com/p/objective-zip/wiki/GettingStarted). Однако мне удалось только сжать (или распаковать) текстовые файлы. Но сжатие (или распаковка) фотографий не упоминается.
Мне удалосьс преобразованием моей фотографии токена в объект NSData. Теперь я хочу сжать их в Zip-файл. Есть ли кто-нибудь, кто имел опыт работы с такими функциями.
Помощь очень ценится!
Редактировать
Я сейчас использую библиотеку Objective Zip, но мое приложение продолжает падать. По-прежнему получаю известную ошибку "Поток 1: Программа получила сигнал:" SIGARBT "". Япытаясь сжать одно изображение, которое я сделал камерой, и сохранить в каталоге документов.
Внутри фрагмента вы можете видеть, что я вызываю фотографию, которую я сделал, и архивирую ее методом ZipFile.отправляю мой zip-файл в виде вложения электронной почты.
Вот фрагмент моего кода:
-(IBAction)sendID{
NSString *docDir3 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *docDir4 = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
NSString *pngFilePath3 = [NSString stringWithFormat:@"%@/photo.png",docDir3];
// Create the zip file
ZipFile *zipFile = [[ZipFile alloc] initWithFileName:docDir4 mode:ZipFileModeCreate];
// Read the files in the data directory
NSError *error = nil;
NSArray *files = [[NSFileManager defaultManager] contentsOfDirectoryAtPath:pngFilePath3 error:&error];
//ZipWriteStream *stream1= [zipFile writeFileInZipWithName:@"abc.txt" fileDate:[NSDate //dateWithTimeIntervalSinceNow:-86400.0] compressionLevel:ZipCompressionLevelBest];
// Write each file to our zip
for (NSString *filename in files) {
// Write the file
ZipWriteStream *stream = [zipFile writeFileInZipWithName:filename compressionLevel:ZipCompressionLevelBest];
NSData *data = [NSData dataWithContentsOfFile:pngFilePath3];
[stream writeData:data];
[stream finishedWriting];
}
// Close the zip file
[zipFile close];
NSData *data = [NSData dataWithContentsOfFile:@"Test.zip"];
MFMailComposeViewController *picker = [[MFMailComposeViewController alloc] init];
picker.mailComposeDelegate=self;
//NSData *imageData = UIImageJPEGRepresentation(viewImage, 1);
[picker addAttachmentData:data mimeType:@"application/zip" fileName:@"Test.zip"];
Class mailclass = (NSClassFromString(@"MFMailComposeViewController"));
if([mailclass canSendMail]){
[self presentModalViewController:picker animated:YES];
}
}
Надеюсь, кто-нибудь может мне помочь.