1. ホーム
  2. objective-c

[解決済み] UIImageをNSDataに変換する

2022-04-22 08:53:18

質問

私は自分のアプリでこのコードを使っています。

しかし、私は画像付きのイメージビューを持っています。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"];

解決方法は?

画像形式に応じて、以下のいずれかをお試しください。

<ブロッククオート

UIImageJPEGRepresentation

指定された画像のデータを JPEG 形式で返します。

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

UIImagePNGRepresentation

指定された画像のデータを PNG 形式で返します。

NSData * UIImagePNGRepresentation (
   UIImage *image
);

ドキュメントを見る .

EDIT

UIImage を構成する生のバイトにアクセスしたい場合は、この方法を使用することができます。

CGDataProviderRef provider = CGImageGetDataProvider(image.CGImage);
NSData* data = (id)CFBridgingRelease(CGDataProviderCopyData(provider));
const uint8_t* bytes = [data bytes];

これにより、画像のRGBピクセルの低レベル表現が得られます。 (以下の CFBridgingRelease ビットは、ARCを使用していない場合に使用します)。