walmart usa precio buy best apple airpods iphone uiimage nsdata

iphone - usa - NSData a UIImage



airpods walmart (5)

Deberías poder usar métodos de clase de UIImage

[UIImage imageWithContentsOfFile:topPathToFile];

O

[UIImage imageWithData:data];

¿Eso no funcionó?

¡Espero que esto ayude!

Estoy intentando guardar un UIIMage y luego recuperarlo y mostrarlo. He tenido éxito al guardar una imagen en el paquete, recuperarla desde allí y mostrarla. Mi problema viene de cuando intento guardar una imagen en el disco (convertirla a NSData) y luego recuperarla. Convierto la imagen a NSData como asi ...

NSData* topImageData = UIImageJPEGRepresentation(topImage, 1.0);

Luego lo escribo en el disco como tal ...

[topImageData writeToFile:topPathToFile atomically:NO];

Entonces traté de recuperarlo así ...

topSubView.image = [[UIImage alloc] initWithContentsOfFile:topPathToFile];

que no devuelve ninguna imagen (el tamaño es cero). entonces intenté ...

NSData *data = [[NSData alloc] initWithContentsOfFile:topPathToFile]; topSubView.image = [[UIImage alloc] initWithData:data];

en vano. Cuando paso por el depurador, veo que los datos contienen el número correcto de bytes, pero estoy confundido en cuanto a por qué no se está creando mi imagen. ¿Me estoy perdiendo un paso? ¿Debo hacer algo con NSData antes de convertir a una imagen?


Por si acaso esto ayuda a alguien, desde iOS6 tenemos el método imageWithData: scale. Para obtener un UIImage con la escala correcta de un objeto NSData, use ese método y declare la escala que usa para almacenar la imagen original. Por ejemplo:

CGFloat screenScale = [[UIScreen mainScreen] scale]; UIImage *image = [UIImage imageWithData:myimage scale:screenScale];

Aquí, myimage es el objeto NSData donde almacenó la imagen original. En el ejemplo, utilicé la escala de la pantalla. Si usa otra escala para la imagen original, use ese valor en su lugar.


Utilice el bloque if-let con datos para evitar el bloqueo de la aplicación y la ejecución segura del código, ya que la función UIImagePNGRepresentation devuelve un valor opcional.

if let img = UIImage(named: "TestImage.png") { if let data:Data = UIImagePNGRepresentation(img) { // Handle operations with data here... } }

Nota: Los datos son Swift 3+ clase. Usa datos en lugar de NSData con Swift 3+

Operaciones de imagen genéricas (como png y 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... } }

Usando la extensión:

extension UIImage { var pngRepresentationData: Data? { return UIImagePNGRepresentation(img) } 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... } }



Prueba este código. Esto funcionó para mí.

Guardando los datos.

Crear ruta para guardar la imagen.

let libraryDirectory = NSSearchPathForDirectoriesInDomains(.libraryDirectory, .userDomainMask, true)[0] let libraryURL = URL(fileURLWithPath: libraryDirectory, isDirectory: true) let fileURL = libraryURL.appendingPathComponent("image.data")

convierta la imagen en un objeto de datos y guárdela en el archivo.

let data = UIImageJPEGRepresentation(myImage, 1.0) try? data?.write(to: fileURL)

recuperando la imagen guardada

let newImage = UIImage(contentsOfFile: fileURL.relativePath)

Cree una vista de imagen y cárguela con la imagen recuperada.

let imageView = UIImageView(image: newImage) self.view.addSubview(imageView)