#ios #iphone #swift #xcode #swift3
#iOS #iPhone #swift #xcode #swift3
Вопрос:
У меня есть простой ImagePicker
для пользователя способ выбрать или сделать снимок профиля. Я хочу сохранить это image
Home
Directory
для удобства загрузки позже.
Проблема заключается в том, что тип изображения не задан.
//Save Image
_ = PPimagePicked.image
let imageData = UIImageJPEGRepresentation(PPimagePicked.image!, 0.6)
let compressedJPGImage = UIImage(data: imageData!)
UIImageWriteToSavedPhotosAlbum(compressedJPGImage!, nil, nil, nil)
// Get Document Root Path
let path = URL(fileURLWithPath: NSHomeDirectory()).appendingPathComponent("Documents/profile.jpg")
do {
//Save image to Root
try imageData?.write(to: path, options: .atomic)
print("Saved To Root")
} catch let error {
print(error)
}
Точная ошибка :
«[Общий] Создание формата изображения с неизвестным типом является ошибкой»
Ответ №1:
Пожалуйста, попробуйте этот код, я использую его в swift 2.2. Приведенный ниже метод включает в себя как UIImageJPEGRepresentation, UIImagePNGRepresentation
if let image = UIImage(named: "example.png") {
if let data = UIImageJPEGRepresentation(image, 0.8) {
let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
try? data.write(to: filename)
}
}
func getDocumentsDirectory() -> URL {
let paths = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let documentsDirectory = paths[0]
return documentsDirectory
}
if let image = UIImage(named: "example.png") {
if let data = UIImagePNGRepresentation(image) {
let filename = getDocumentsDirectory().appendingPathComponent("copy.png")
try? data.write(to: filename)
}
}
Комментарии:
1. значение UIImage не имеет члена ‘write’
2. @user1514436 метод ‘write’ доступен для NSData, а не для UIImage, возможно, вы используете функцию записи в UIImage
3. Это не позволит мне использовать его в UIImage. Я думаю, что в моем коде что-то еще отсутствует…
Ответ №2:
попробуйте преобразовать изображение в данные изображения
let imageCapture = UIImage(data: dataImage)!
UIImageWriteToSavedPhotosAlbum((image: imageCapture), nil, nil, nil)