0

我想将 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"]; 

它给了我一个错误

4

1 回答 1

1

UIImage图像有自己的内部表示,因此无论您使用 jpeg 还是 png 数据加载它都无关紧要。

您感兴趣的 API 调用将 aUIImage作为第一个参数,因此类似于

[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行上放置一个断点并检查 的值imagepo image在控制台上键入。

于 2012-04-23T12:11:44.720 回答