UIImageをNSDataに変換する 質問する

UIImageをNSDataに変換する 質問する

私は自分のアプリでこのコードを使用しており、画像の送信に役立ちます。

ただし、画像を含む画像ビューがあります。appbundle にはファイルがありませんが、画像はあります。以下のコードを変更するにはどうすればよいですか? どのよう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"];

ベストアンサー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 ピクセルの低レベル表現が得られます ( CFBridgingReleaseARC を使用していない場合はビットを省略します)。

おすすめ記事