Преобразование UIImage в NSData и преобразование обратно в UIImage в Swift?
Я пытаюсь сохранить UIImage
to NSData
а потом прочитала NSData
вернуться к новому UIImage
в Swift. Чтобы преобразовать UIImage
to NSData
Я использую следующий код:
let imageData: NSData = UIImagePNGRepresentation(myImage)
как преобразовать imageData
(т. е. NSData
) в новую UIImage
?
6 ответов
спасибо. Очень помогло. Конвертированы в Swift 3 и работал
сохранить: let data = UIImagePNGRepresentation(image)
нагрузка: let image = UIImage(data: data)
использовать imageWithData:
метод, который переводится на Swift как UIImage(data:)
let image : UIImage = UIImage(data: imageData)
сохранить как данные:
из раскадровки, если вы хотите сохранить данные "image" на imageView MainStoryBoard, будут работать следующие коды.
let image = UIImagePNGRepresentation(imageView.image!) as NSData?
для загрузки "изображения" в imageView: Посмотрите на восклицательный знак"!", "?- точно ли это то же самое, что и это.
imageView.image = UIImage(data: image as! Data)
тип " NSData "автоматически преобразуется в тип" данные " во время этого процесса.
сейчас Swift 4.2 можно использовать pngData()
новый метод экземпляра UIImage
чтобы получить данные из изображения
let profileImage = UIImage(named:"profile")!
let imageData = profileImage.pngData()
для безопасного выполнения кода, использовать if-let
блок Data
для предотвращения сбоя приложения и, как функция UIImagePNGRepresentation
возвращает необязательное значение.
if let img = UIImage(named: "TestImage.png") {
if let data:Data = UIImagePNGRepresentation(img) {
// Handle operations with data here...
}
}
Примечание: данные является Swift 3 + класс. Используйте данные вместо NSData с Swift 3+
общие операции с изображениями (например, png и jpg):
if let img = UIImage(named: "TestImage.png") { //UIImage(named: "TestImage.jpg")
if let data:Data = UIImagePNGRepresentation(img) {
handleOperationWithData(data: data)
} else if let data:Data = UIImageJPEGRepresentation(img, 1.0) {
handleOperationWithData(data: data)
}
}
*******
func handleOperationWithData(data: Data) {
// Handle operations with data here...
if let image = UIImage(data: data) {
// Use image...
}
}
С помощью расширения:
extension UIImage {
var pngRepresentationData: Data? {
return UIImagePNGRepresentation(self)
}
var jpegRepresentationData: Data? {
return UIImageJPEGRepresentation(self, 1.0)
}
}
*******
if let img = UIImage(named: "TestImage.png") { //UIImage(named: "TestImage.jpg")
if let data = img.pngRepresentationData {
handleOperationWithData(data: data)
} else if let data = img.jpegRepresentationData {
handleOperationWithData(data: data)
}
}
*******
func handleOperationWithData(data: Data) {
// Handle operations with data here...
if let image = UIImage(data: data) {
// Use image...
}
}