我正在爲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