小编典典

将 UIImage 转换为 NSData

all

我在我的应用程序中使用此代码,这将帮助我发送图像。

但是,我有一个带有图像的图像视图。我在 appbundle
中没有文件,但我身边有图像。如何更改以下代码?谁能告诉我如何转换myimageNSData

// 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"];

阅读 81

收藏
2022-08-24

共1个答案

小编典典

根据您的图像格式,尝试以下方法之一:

UIImageJPEG表示

以 JPEG 格式返回指定图像的数据。

NSData * UIImageJPEGRepresentation (
   UIImage *image,
   CGFloat compressionQuality
);

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,请省略该位)。

2022-08-24