Estoy usando este código en mi aplicación que me ayudará a enviar una imagen.
Sin embargo, tengo una vista de imagen con una imagen. No tengo ningún archivo en appbundle pero tengo la imagen a mi lado. ¿Cómo puedo cambiar el siguiente código? ¿Puede alguien decirme cómo puedo convertir myimage
a NSData
?
// Attach an image to the email
NSString *path = [[NSBundle mainBundle] pathForResource:@"rainy" ofType:@"jpg"];
NSData *myData = [NSData dataWithContentsOfFile:path];
[picker addAttachmentData:myData mimeType:@"image/jpeg" fileName:@"rainy"];
objective-c
ios
ipad
cocoa-touch
nsdata
Christina
fuente
fuente
Respuestas:
Pruebe uno de los siguientes, según su formato de imagen:
Aquí los documentos .
EDITAR:
Si desea acceder a los bytes sin procesar que componen el UIImage, puede utilizar este enfoque:
Esto le dará la representación de bajo nivel de los píxeles RGB de la imagen. (Omita el
CFBridgingRelease
bit si no está utilizando ARC).fuente
(id)CFBridgingRelease(CGDataProviderCopyData(provider))
para tomar la propiedad deCDataRef
devuelto porCGDataProviderCopyData
ARC.data
sería suficiente o si todavía habría una pérdida de memoria.fuente
Si tiene una imagen dentro de un UIImageView, por ejemplo, "myImageView", puede hacer lo siguiente:
Convierta su imagen usando UIImageJPEGRepresentation () o UIImagePNGRepresentation () de esta manera:
También puede poner este código dentro de un bloque GCD y ejecutarlo en otro subproceso, mostrando un UIActivityIndicatorView durante el proceso ...
fuente
Crea la referencia de imagen ....
mostrar imagen en la vista de imagen ... imagedisplay es referencia de imageview:
conviértalo
NSData
pasando laUIImage
referencia y proporcione calidad de compresión en valores flotantes:fuente
Solución en Swift 4
fuente
cgImage.dataProvider
codifican los datos? Parece ser diferente de los datos deUIImagePNGRepresentation
yUIImageJPEGRepresentation
porque no se puede usar para crear una imagen como estaUIImage(data: imageData)
.UIImageJPEGRepresentation
proporciona. Pero creo que esta solución conserva el formato de codificación original en el que estaba la imagen y no la vuelve a codificar.Use 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.
Operaciones genéricas de imagen (como png y jpg ambas):
Mediante el uso de la extensión:
fuente
fuente