Конвертировать 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)
для сохранения в виде данных:
из раскадровки, если вы хотите сохранить данные "изображения" на 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... } }