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

没有意义,因为它分配了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

从资产库中提取图像只会为您提供项目的 guid url。

资产库中没有真正的名称结构。照片库有一些属性,但它们如下

ALAssetPropertyType
ALAssetPropertyLocation
ALAssetPropertyDuration
ALAssetPropertyOrientation
ALAssetPropertyDate

所有这些都可以在AssetsLibrary.framework\ALAsset.h

为了给我从那里收集的图像命名,我通常把

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

当我添加图像时,图像编号会增加。

希望有帮助

于 2012-08-25T01:53:21.333 回答