我正在为iOS编写一个Swift应用程序。我想知道如何从用户的相机胶卷中获取图像(或者他们最近调用的任何图像),并将其保存在本地应用程序中,以便稍后参考。怎么会这样呢?作为一个例子,假设我想获取图像并将其设置为故事板中UIImageView的图像。iOS&Swift - 如何从用户获取并保存UIImage?
回答
这正是UIImagePickerController
加上NSUserDefaults
会做的。
对你而言,它将是一个两部分任务。首先,您必须用UIImagePickerController
捕捉图像,然后将其存储在其照片库中,或者将其存储在设备上,其格式为NSUserDefaults
。
要存储图像NSUserDefaults
,请参阅this question。
Ray Wenderlich有一个great tutorial用于使用UIImagePickerController
选择图像,然后使用AssetsLibrary
保存到相册。
还有关于使用图像过滤器的信息,超过了您在教程中要求的范围。
我得到这个错误。 http://postimg.org/image/gcfwet8uf/ – quillford 2014-11-03 00:00:39
我知道不符合UIImagePickerControllerDelegate的唯一方法是不符合UINavigationControllerDelegate。 UIPicker需要一个导航控制器。 – 2014-11-03 02:51:25
一旦你得到了UIImage对象,你可以在一个文档目录保存图像用下面的代码
let imageData = NSData(data:UIImagePNGRepresentation(wineImage.image))
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var docs: String = paths[0] as! String
let fullPath = docs.stringByAppendingPathComponent("yourNameImg.png")
let result = imageData.writeToFile(fullPath, atomically: true)
你绝对应该使用UIImagePickerController
布赖恩提到的,一旦你有选择的图像使用这个文件经理方法。我不推荐使用NSUserDefaults
存储图像,因为它违背了Apple guidelines:
let imageData = UIImagePNGRepresentation(selectedImage)
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as String
let imagePath = paths.stringByAppendingPathComponent("cached.png")
if !imageData.writeToFile(imagePath, atomically: false)
{
println("not saved")
} else {
println("saved")
NSUserDefaults.standardUserDefaults().setObject(imagePath, forKey: "imagePath")
}
这里是我的组合。
保存图像:
let imageData = NSData(data:UIImagePNGRepresentation(pickedimage))
let paths = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
var docs: String = paths[0] as! String
let fullPath = docs.stringByAppendingPathComponent("yourNameImg.png")
let result = imageData.writeToFile(fullPath, atomically: true)
print(fullPath)
获取图像:
let nsDocumentDirectory = NSSearchPathDirectory.DocumentDirectory
let nsUserDomainMask = NSSearchPathDomainMask.UserDomainMask
if let paths = NSSearchPathForDirectoriesInDomains(nsDocumentDirectory, nsUserDomainMask, true)
{
if paths.count > 0
{
if let dirPath = paths[0] as? String
{
let readPath = dirPath.stringByAppendingPathComponent("yourNameImg.png")
let image = UIImage(contentsOfFile: readPath)
UploadImagePreview.image = image
}
}
}
我们可以从照片框架尝试获取最后保存的图像。
var fetchOptions: PHFetchOptions = PHFetchOptions()
fetchOptions.sortDescriptors = [NSSortDescriptor(key: "creationDate", ascending: true)]
var fetchResult = PHAsset.fetchAssetsWithMediaType(PHAssetMediaType.Image, options: fetchOptions)
if (fetchResult.firstObject != nil) {
var lastAsset: PHAsset = fetchResult.lastObject as! PHAsset
PHImageManager.defaultManager().requestImageForAsset(lastAsset, targetSize: self.UploadImagePreview.bounds.size, contentMode: PHImageContentMode.AspectFill, options: PHImageRequestOptions(), resultHandler: { (result, info) -> Void in
self.UploadImagePreview.image = result
})
}
UIImage(contentsOfFile :)不起作用 – 2016-01-23 04:19:14
@ Rodrigo:它只在给出图像的完整路径时起作用。 – 2016-01-25 06:17:33
- 1. iOS Swift。如何从UIImage(NSURL)获取GPS元数据?
- 2. 获取CIImage从UIImage的(SWIFT)
- 3. iOS - 从CGBitmapContext获取UIImage
- 4. 如何获取本地保存的UIImage路径到UIImage?
- 5. 如何从UIImage获取URL?
- 6. 如何调用HTTP获取并保存在Swift中的变量?
- 7. Swift从UIView的图层获取UIImage
- 8. 如何从UIImagePickerControllerReferenceURL获取UIImage
- 9. 如何从CGContextRef获取UIImage?
- 10. 如何从UIImage获取CGContextRef?
- 11. 如何使用rails获取并保存到db用户IP?
- 12. 如何从imagePickerController中保存UIImage属性
- 13. 如何正确保存并从数据存储中获取JSON?
- 14. 下载并保存PFFile(UIImage)以显示在UIImageView中:SWIFT
- 15. 保存用户数据(Swift)
- 16. 旋转UIImage问题 - IOS/Swift
- 17. 如何处理NSData并返回UIImage(Swift)
- 18. 如何从EAGLView的纹理获取UIImage?
- 19. 如何使用掩码保存UIImage
- 20. 保存并读取数组到UserDefaults swift
- 21. iOS保存一堆UIImage并在后期恢复
- 22. UIImage遮罩不起作用(Swift,iOS 10)
- 23. 如何从获取值并保存到php的数据库
- 24. iOS:为用户保存nsmutablearray
- 25. 无法从UITextField获取文本 - Swift - iOS
- 26. 如何在iOS中将UIImage保存为渐进式JPEG格式?
- 27. 如何使用Swift从NSURLSession获取cookie?
- 28. 将两个imageView合并为一个并保存iOS swift
- 29. 如何从保存的文件中获取保存的文本
- 30. 如何将uiview转换为uiimage并保存为照片库
查找ALAssetsLibrary – Abizern 2014-11-02 23:04:30
我认为这个链接将帮助你很多[点击这里] [1] [1]:http://stackoverflow.com/questions/25730830/how-在照相机上使用照片框架 – 2014-11-03 09:58:07