我在我的应用程序中使用此代码,这将帮助我发送图像。
但是,我有一个带有图像的图像视图。我在 appbundle 中没有文件,但我身边有图像。如何更改以下代码?谁能告诉我如何转换myimage为NSData?
myimage
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"];
根据您的图像格式,尝试以下方法之一:
UIImageJPEG表示 以 JPEG 格式返回指定图像的数据。
UIImageJPEG表示
以 JPEG 格式返回指定图像的数据。
NSData * UIImageJPEGRepresentation ( UIImage *image, CGFloat compressionQuality );
UIImagePNG表示 以 PNG 格式返回指定图像的数据
UIImagePNG表示
以 PNG 格式返回指定图像的数据
NSData * UIImagePNGRepresentation ( UIImage *image );
这里是文档。
编辑:
如果要访问构成 UIImage 的原始字节,可以使用以下方法:
CGDataProviderRef provider = CGImageGetDataProvider(image.CGImage); NSData* data = (id)CFBridgingRelease(CGDataProviderCopyData(provider)); const uint8_t* bytes = [data bytes];
这将为您提供图像 RGB 像素的低级表示。CFBridgingRelease(如果您不使用 ARC,请省略该位)。
CFBridgingRelease