Преобразование UIImage в файл JPEG / PNG для совместного использования с помощью плагина AddThis

Я хочу преобразовать UIImage в формат, такой как jpeg или png, чтобы я мог поделиться этим файлом с помощью плагина IOS под названием "AddThis". Я попытался поделиться им, используя только UIImage, но плагин не поддерживает его, поэтому мне нужно сначала найти способ конвертировать UIImage в jpeg, а затем добавить его в этот код:

[AddThisSDK shareImage:[UIImage imageNamed:@"test.jpg] withService:@"twitter" title:@"I'm sharing something" description:@"Random description of image"];

код должен иметь shareImage:[UIImageNamed:@""] в противном случае возникает ошибка.

До сих пор я пытался конвертировать его с помощью UIImageJPEGRepresentation но я не думаю, что сделал это правильно. Честно говоря, я пытался сделать это так же, как вы конвертировали бы это прямо с получения изображения:

 NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"photo_boom.jpg"];

[UIImageJPEGRepresentation(shareImage, 1.0) writeToFile:jpgPath atomically:YES];

NSError *error;
NSFileManager *fileMgr = [NSFileManager defaultManager];

NSString *documentsDirectory = [NSHomeDirectory() stringByAppendingPathComponent:@"photo_boom.jpg"];

NSLog(@"Documents directory: %@", [fileMgr contentsOfDirectoryAtPath:documentsDirectory error:&error]);

Что-то говорит мне, что это не правильный путь... в основном потому, что я не смог заставить его работать.

Буду очень признателен за любую помощь!

По сути, я сделал UIImage из преобразования UIView:

UIGraphicsBeginImageContext(firstPage.bounds.size); 
[firstPage.layer renderInContext:UIGraphicsGetCurrentContext()]; 
UIImage *image = UIGraphicsGetImageFromCurrentImageContext(); 

Который я затем хочу дать формат JPEG, потому что, когда я пытался просто положить его в виде

[AddThisSDK shareImage:image withService:@"twitter" title:@"I'm sharing something" description:@"Random description of image"]; 

Это дает мне ошибку

1 ответ

Решение

UIImage имеет собственное внутреннее представление изображения, поэтому не имеет значения, загружаете ли вы его в формате JPEG или PNG.

Интересующий вас вызов API имеет UIImage в качестве первого параметра, так что-то вроде

[AddThisSDK shareImage:[UIImage imageNamed:@"photo_boom.jpg"] 
           withService:@"twitter" 
                 title:@"I'm sharing something" 
           description:@"Random description of image"];

должно работать, при условии, что photo_boom.jpg включен в ваш пакет. Если вы загружаете ранее сохраненное изображение из папки, вам понадобится что-то вроде этого:

NSString  *jpgPath = [NSHomeDirectory() stringByAppendingPathComponent:@"photo_boom.jpg"];
UIImage * myImage = [UIImage imageWithContentsOfFile: jpgPath];

[AddThisSDK shareImage:myImage
           withService:@"twitter" 
                 title:@"I'm sharing something" 
           description:@"Random description of image"];

Если это не сработало, попытались ли вы установить точку останова на AddThisSDK линия, и проверка значения image? Тип po image на консоли.

Другие вопросы по тегам