我想将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"];
它给了我一个错误
答案 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
。