Tôi muốn lưu và đọc UIImage vào thư mục tạm thời khi ứng dụng đóng và sau đó tải và xóa nó khi ứng dụng tải. Làm thế nào để tôi thực hiện điều này. Hãy giúp tôi.Làm cách nào để lưu và đọc hình ảnh vào thư mục tạm thời khi thoát và tải ứng dụng
Trả lời
Những phương pháp này cho phép bạn lưu vào và lấy một hình ảnh từ thư mục tài liệu trên iphone
+ (void)saveImage:(UIImage *)image withName:(NSString *)name {
NSData *data = UIImageJPEGRepresentation(image, 1.0);
NSFileManager *fileManager = [NSFileManager defaultManager];
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:name];
[fileManager createFileAtPath:fullPath contents:data attributes:nil];
}
+ (UIImage *)loadImage:(NSString *)name {
NSString *fullPath = [documentsDirectory stringByAppendingPathComponent:name];
UIImage *img = [UIImage imageWithContentsOfFile:fullPath];
return img;
}
Bên cạnh đó, bạn không bao giờ muốn lưu bất cứ điều gì vào tmp
thư mục thực tế mà bạn muốn xung quanh sau khi ứng dụng tắt. Thư mục tmp
có thể bị hệ thống thanh lọc. Theo định nghĩa, nó chỉ tồn tại để giữ các tệp nhỏ chỉ cần thiết khi ứng dụng đang chạy.
Các tệp bạn muốn giữ lại phải luôn đi vào thư mục documents
.
Cảm ơn bạn Tôi không biết điều này – Jaba
Các chưa được kiểm tra Swift tinh chỉnh cho câu trả lời chọn:
class func saveImage(image: UIImage, withName name: String) {
let documentsDirectory = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)[0] as! String
var data: NSData = UIImageJPEGRepresentation(image, 1.0)!
var fileManager: NSFileManager = NSFileManager.defaultManager()
let fullPath = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent(name)
fileManager.createFileAtPath(fullPath.absoluteString, contents: data, attributes: nil)
}
class func loadImage(name: String) -> UIImage {
var fullPath: String = NSURL(fileURLWithPath: NSTemporaryDirectory()).URLByAppendingPathComponent(name).absoluteString
var img:UIImage = UIImage(contentsOfFile: fullPath)!
return img
}
Tested Mã cho nhanh chóng
//to get document directory path
func getDocumentDirectoryPath() -> NSString {
let paths = NSSearchPathForDirectoriesInDomains(.DocumentDirectory, .UserDomainMask, true)
let documentsDirectory = paths[0]
return documentsDirectory
}
Gọi sử dụng
if let data = UIImagePNGRepresentation(img) {
let filename = self.getDocumentDirectoryPath().stringByAppendingPathComponent("resizeImage.png")
data.writeToFile(filename, atomically: true)
}
Swift 3 Xcode 8,2
Tài liệu thư mục có được:
func getDocumentDirectoryPath() -> NSString {
let paths = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)
let documentsDirectory = paths[0]
return documentsDirectory as NSString
}
Tiết kiệm:
func saveImageToDocumentsDirectory(image: UIImage, withName: String) -> String? {
if let data = UIImagePNGRepresentation(image) {
let dirPath = getDocumentDirectoryPath()
let imageFileUrl = URL(fileURLWithPath: dirPath.appendingPathComponent(withName) as String)
do {
try data.write(to: imageFileUrl)
print("Successfully saved image at path: \(imageFileUrl)")
return imageFileUrl.absoluteString
} catch {
print("Error saving image: \(error)")
}
}
return nil
}
Chở Hàng:
func loadImageFromDocumentsDirectory(imageName: String) -> UIImage? {
let tempDirPath = getDocumentDirectoryPath()
let imageFilePath = tempDirPath.appendingPathComponent(imageName)
return UIImage(contentsOfFile:imageFilePath)
}
Ví dụ:
//TODO: pass your image to the actual method call here:
let pathToSavedImage = saveImageToDocumentsDirectory(image: imageToSave, withName: "imageName.png")
if (pathToSavedImage == nil) {
print("Failed to save image")
}
let image = loadImageFromDocumentsDirectory(imageName: "imageName.png")
if image == nil {
print ("Failed to load image")
}
Swift 4 thực hiện:
// saves an image, if save is successful, returns its URL on local storage, otherwise returns nil
func saveImage(_ image: UIImage, name: String) -> URL? {
guard let imageData = UIImageJPEGRepresentation(image, 1) else {
return nil
}
do {
let imageURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent(name)
try imageData.write(to: imageURL)
return imageURL
} catch {
return nil
}
}
// returns an image if there is one with the given name, otherwise returns nil
func loadImage(withName name: String) -> UIImage? {
let imageURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!.appendingPathComponent(name)
return UIImage(contentsOfFile: imageURL.path)
}
dụ sử dụng (giả sử chúng ta có một hình ảnh):
let image = UIImage(named: "milan")
let url = saveImage(image, name: "savedMilan.jpg")
print(">>> URL of saved image: \(url)")
let reloadedImage = loadImage(withName: "savedMilan.jpg")
print(">>> Reloaded image: \(reloadedImage)")
- 1. Cách tải ảnh từ thư viện ảnh và lưu trữ nó vào dự án ứng dụng?
- 2. Tôi làm cách nào để lưu hình ảnh vào thư mục tmp của ứng dụng?
- 3. Android: Làm cách nào để đính kèm hình ảnh tạm thời, được tạo vào email?
- 4. Sự cố khi tải và lưu hình ảnh từ máy ảnh và thư viện ảnh. Tôi đang làm gì sai?
- 5. Lưu hình ảnh từ máy ảnh vào thư mục bộ nhớ cache ứng dụng riêng tư
- 6. Làm cách nào để sử dụng Wget để tải xuống tất cả hình ảnh vào một thư mục, từ URL?
- 7. Làm cách nào để lưu lại ứng dụng vào nhóm?
- 8. khi đưa hình ảnh vào ứng dụng/asssets và khi nào/công khai/hình ảnh trong đường ray 3.1?
- 9. Tải lên và lưu trữ hình ảnh
- 10. Lưu và tải hình ảnh SQLite C#
- 11. Chuyển đổi PDF sang hình ảnh tạm thời với mục đích đọc mã QR
- 12. Cách tải lên và lưu trữ hình ảnh bằng công cụ ứng dụng google (java)
- 13. Android - Cách tải xuống hình ảnh và sử dụng nó trong thời gian chạy?
- 14. Cách xoay hình ảnh và lưu hình ảnh
- 15. Cách tốt nhất để tải lên và lưu trữ hình ảnh trên trang web là gì?
- 16. Đề nghị thực hành để lưu trữ cấu hình tạm thời của ứng dụng
- 17. Đang tải hình ảnh lên TImageList và Đọc chúng?
- 18. Làm cách nào để có thể tải xuống tệp tạm thời bằng cách sử dụng mod_perl và CGI :: Application?
- 19. Tôi làm cách nào để lưu hình ảnh vào thư viện ảnh?
- 20. Làm cách nào để tải thư mục Tải lên PHP?
- 21. Không thể msdeploy gói web vào thư mục tạm thời?
- 22. Làm cách nào để thay đổi thư mục tạm thời mà Capistrano sử dụng?
- 23. Tải và hiển thị tất cả hình ảnh từ một thư mục
- 24. Thư mục tạm thời trong WebLogic 10
- 25. Thư mục tạm thời của nhà cung cấp được thiết lập để tải lên/tmp thư mục
- 26. Thay đổi thư mục tạm thời
- 27. Làm cách nào để dán hình ảnh trong suốt từ khay nhớ tạm vào ứng dụng C# winforms?
- 28. Lưu ảnh vào thư mục tài liệu ứng dụng từ UIView trên IOS
- 29. Gặp sự cố khi sử dụng thư viện PIL trăn để cắt và lưu hình ảnh
- 30. Cập nhật ứng dụng, NSURL và Thư mục tài liệu
Cảm ơn bạn đã thời gian phản ứng nhanh chóng. Và câu trả lời chính xác. – Jaba
Và tài liệu này đến từ đâu? – jjxtra
Chi tiết về thư mục tài liệu tại đây http://stackoverflow.com/questions/6907381/what-is-the-documents-directory-nsdocumentdirectory/6907432#6907432 –