iPhone - 将UIImage保存到模拟器桌面

19

我目前正在处理模拟器相关工作。

我想将一张UIImage保存为jpg文件,并存到我的桌面上。

看起来似乎出现了路径或者其他的问题。

谢谢您的帮助 :)


请提供更多细节。 - Alexander Gessler
4个回答

31

以下内容可以帮助您入门... myImage 是一个UIImage对象。

NSFileManager *fileManager = [NSFileManager defaultManager];
NSData *myImageData = UIImagePNGRepresentation(myImage);
[fileManager createFileAtPath:@"/Users/Me/Desktop/myimage.png" contents:myImageData attributes:nil];

编辑:刚刚注意到您想要一个JPG图像,您可以使用UIImageJPEGRepresentation()获取JPG的NSData表示,代码如下:

NSData *myImageData = UIImageJPEGRepresentation(myImage, 1.0);

注意:这对于快速而粗略的测试很有用,但我建议学习如何将内容写入您的应用程序的文档目录,然后使用Finder在那里查找文件。 模拟器中应用程序文档目录的示例路径为:

/Users/Me/Library/Application Support/iPhone Simulator/4.3/Applications/1E2C2C81-1ED6-4DC9-CDD0-CA73FB56501F/Documents


是的,这是用于脏测试的 :) - nax_
实际上如何“写入应用程序的文档目录,然后使用Finder在那里查找文件。模拟器中应用程序文档目录的示例路径为:” - user4951
注意:你必须在模拟器上进行操作(当然)。我一直想不通为什么它停止工作,后来才意识到我是在构建设备。 - Albert Renshaw

1

尝试进入 cd /Users/{你的用户名}/Library/Application\ Support/iPhone\ Simulator/4.3/Applications/{应用程序ID}/Documents/

{你的用户名} 替换为你的 Mac 用户名,{应用程序ID} 是你的应用程序 GUID(随机生成)。你也可以将 4.3 更改为你的应用程序所构建的任何版本。


1

对于Swift

func outputImage(name:String,image:UIImage){
    let fileManager = FileManager.default
    let data = UIImagePNGRepresentation(image)
    fileManager.createFile(atPath: "/Users/UserName/Projects/MyProject/testImages/\(name)", contents: data, attributes: nil)
}

像这样调用:
outputImage(name: "imageName.png", image: image)

0
模拟器仿真运行在一个沙盒应用程序中,但由于它在您的 Mac 上,您可以访问应用程序及其所有文件存储的目录。因此,在您的应用程序中,如果您能够找到如何将数据写入文件(在应用程序的沙盒内),那么您可以使用 Finder 定位目录并找到该文件。这有帮助还是我遗漏了什么?

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接