来自UIImage的数据URL / PNG

时间:2009-02-01 22:17:51

标签: cocoa-touch

我有一个有UIImage的iPhone程序。需要将此UIImage传输到UIWebView中的javascript Image对象。我想这可以通过使用我发送到UIWebView的数据URL来完成,如下所示:

[wview stringByEvaluatingJavaScriptFromString:@"loadimage('%d')",dataurlfromuiimage];

所以,我需要将我的UIImage转移到Data:URL。如果我能获得PNG数据,我可以自己做,但我也找不到怎么做。如果有更好的方法将其发送到WebView,那也不错。

2 个答案:

答案 0 :(得分:22)

要以PNG格式获取图像的NSData表示,请使用

NSData *dataForPNGFile = UIImagePNGRepresentation(yourImage);

同样,可以使用

获得JPEG表示
NSData *dataForJPEGFile = UIImageJPEGRepresentation(yourImage, 0.9f);

获得NSData后,可以使用writeToFile:atomically:将其写入Documents目录,然后我相信你可以将其作为本地URL传递(虽然我没试过)。另一种方法是使用FrançoisP。引用的Base64 NSData类别,并以某种方式将其作为Base64发送到JavaScript。

答案 1 :(得分:0)

不幸的是,您需要将UIImage转换为图像的文件表示形式,而不是存储在UIImage结构中的解码像素信息。也就是说,您需要以某种方式将其写入临时文件并获取文件的原始NSData字节(可能是JPEG ou PNG)。然后使用BASE64编码器。我不认为它已经由Apple提供,所以你想看看这篇文章:http://www.cocoadev.com/index.pl?BaseSixtyFour