使用AddThis插件将UIImage转换为jpeg / png文件以进行共享

时间:2012-04-23 11:39:32

标签: objective-c uiimage addthis uiimagejpegrepresentation

我想将UIImage转换为jpeg或png等格式,以便我可以使用名为“AddThis”的IOS插件共享该文件。 我尝试仅使用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]);

有些东西告诉我这不是正确的方法......主要是因为我无法让它发挥作用。

我真的很感激任何帮助!

基本上,我通过转换UIView来制作UIImage:

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 个答案:

答案 0 :(得分: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