Конвертировать 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... } }