私は自分のアプリでこのコードを使用しており、画像の送信に役立ちます。
ただし、画像を含む画像ビューがあります。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 ピクセルの低レベル表現が得られます ( CFBridgingRelease
ARC を使用していない場合はビットを省略します)。