0

フォトライブラリまたはカメラから取得した画像の名前を取得する際に問題が発生しました。画像の選択に成功しましたが、MFMailComposeViewControllerを使用して、選択した画像を電子メールの添付ファイルとして送信したいと思います。問題は、MFMailComposeViewControllerが画像の特定の名前を必要としたことです。次のコードを使用して画像名を取得しましたが、常に「assest.JPG」が返され、MFMailComposeViewControllerでは機能しません。

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo{
[imageView setImage:image];
image_ = image;
image_ = [UIImage imageNamed:@"file.jpg"];
NSURL *imagePath = [editingInfo objectForKey:@"UIImagePickerControllerReferenceURL"];
imageName = [imagePath lastPathComponent];

NSLog(@"%@",imageName);
[self dismissModalViewControllerAnimated:YES];
if (CAMORLIB == 1) {
    UIImageWriteToSavedPhotosAlbum(image, self, @selector(image:didFinishSavingWithError:contextInfo:), nil);
}}

この問題に対処する他の方法はありますか?

ありがとう、

モハメッド

4

2 に答える 2

0

ここにあなたのコード:

image_ = image;
image_ = [UIImage imageNamed:@"file.jpg"];

2回割り当てられるため、意味がありませんimage_。このUIImageメソッドは、ディスクから名前が-imageNamed:(NSString*)name付けられたファイルをロードしようとしますfile.jpg

MFMailComposeViewControllerが機能しない理由は、上記のコードが、その名前のファイルが見つからないために発生するためです(結果image_として)nil[UIImage imageNamed:@"filename"]nil

メールに添付

画像をMFMailComposeViewControllerに添付するときは、画像のデータとともに、画像に付けるファイル名を指定します。

NSData* myData = UIImageJPEGRepresentation(image, .70f);
[picker addAttachmentData:myData mimeType:@"image/jpg" fileName:@"desiredfilename.jpg"];

ここで、imageはaUIImageであり@"desiredfilename.jpg"、は画像に電子メールで表示するファイル名です。

于 2012-08-25T01:24:57.393 に答える
0

アセットライブラリから画像をプルすると、アイテムのGUIDURLのみが提供されます。

アセットライブラリには実際の名前の構成はありません。フォトライブラリにはいくつかのプロパティがありますが、次のとおりです。

ALAssetPropertyType
ALAssetPropertyLocation
ALAssetPropertyDuration
ALAssetPropertyOrientation
ALAssetPropertyDate

これらはすべて、AssetsLibrary.framework\ALAsset.h

そこから集めた画像に名前を付けるために、普段は

[NSString stringWithFormat:"Image%@.png",imageNumber]

ここで、画像を追加すると画像番号が増加します。

お役に立てば幸い

于 2012-08-25T01:53:21.333 に答える