在UIImage上使用UIActivityViewController时有没有办法指定图像格式?

时间:2013-01-13 20:01:50

标签: objective-c ios6 uiimage uiactivityviewcontroller uiactivity

操作系统似乎选择是否使用PNG或JPEG,原因不明。在我的情况下,我想要发送JPEG(通过邮件,推特等),但我倾向于得到一个非常大的PNG。

如果我将UIActivityItemProvider子类化并返回指向我自己创建的文件的NSURL,则使用UIImageJPEGRepresentation将JPEG写入磁盘,我当然可以获得JPEG。但是,使用NSURL会导致其他问题(其中一个问题是无法将iMessage用作目标)。有没有办法使用UIImage,但是指定你更喜欢某种文件格式? (我很确定答案是否定的,但想检查一下。)

2 个答案:

答案 0 :(得分:10)

实际上它只是将JPEG表示的NSData作为活动项传递。

NSData *data = UIImageJPEGRepresentation(image, 0.6);
UIActivityViewController *activityController = [[UIActivityViewController alloc] initWithActivityItems:@[data]];
                                                                                 applicationActivities:nil];

答案 1 :(得分:-4)

看起来答案确实没有。