Estoy tratando de salvar una UIImage
a NSData
y después lee el NSData
regreso a un nuevo UIImage
en Swift. Para convertir UIImage
a NSData
estoy usando el siguiente código:
let imageData: NSData = UIImagePNGRepresentation(myImage)
¿Cómo convierto imageData
(es decir, NSData
) de nuevo a un nuevo UIImage
?
let imagePt = UIImage(data: caminhodaImagem)
suficiente?Use el
imageWithData:
método, que se traduce a Swift comoUIImage(data:)
fuente
Ahora en Swift 4.2 puede usar un
pngData()
nuevo método de instanciaUIImage
para obtener los datos de la imagenfuente
Detalles
Solución 1
Solución 2.1
Uso de la solución 2.1
Solución 2.2
Uso de la solución 2.2
La representación de imágenes requerirá muchos recursos de CPU y memoria. Entonces, en este caso, es mejor seguir varias reglas:
- no ejecute jpegData (compressQuality :) en la cola principal
- ejecute solo un jpegData (compressQuality :) simultáneamente
Incorrecto:
Correcto:
Enlaces
fuente
Para guardar como datos:
Desde StoryBoard, si desea guardar datos de "imagen" en la imageView de MainStoryBoard, los siguientes códigos funcionarán.
Para cargar "imagen" en imageView: Mire el signo de exclamación "!", "?" de cerca si eso es lo mismo que este.
El tipo "NSData" se convierte automáticamente en el tipo "Datos" durante este proceso.
fuente
Para una ejecución segura del código, use
if-let
block withData
para evitar el bloqueo de la aplicación &, ya que la funciónUIImagePNGRepresentation
devuelve un valor opcional.Operaciones genéricas de imagen (como png y jpg ambas):
Mediante el uso de la extensión:
fuente
Imagen a datos: -
Datos a la imagen: -
fuente
Swift 5
deja que la imagen que crees como UIImage sea imagen
fuente