资产库如何与引用URL一起使用时,可能尚不了解,但现在我将引用保存在nsdefaults中。 我想在屏幕加载时显示来自参考的图像,但是它不起作用。 这是我获取图像的方式:

- (void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
  [[NSUserDefaults standardUserDefaults]setObject:[info objectForKey:UIImagePickerControllerReferenceURL] forKey:@"profilePic"];
  [pics addObject:[info objectForKey:UIImagePickerControllerReferenceURL]];
  [library assetForURL:[pics objectAtIndex:pics.count-1] resultBlock:^(ALAsset *asset){
      UIImage *copyofOriginal = [UIImage imageWithCGImage:[[asset defaultRepresentation]fullScreenImage] scale:0.5 orientation:UIImageOrientationUp];
      profilePic.image = copyofOriginal;
  }failureBlock:nil];
}

现在,当应用再次启动时,我正在尝试像这样将其恢复,但它给了我一个空白图片:

if (![[[NSUserDefaults standardUserDefaults]valueForKey:@"profilePic"] isEqualToString:@""]) {
    [library assetForURL:[NSURL URLWithString:[[NSUserDefaults standardUserDefaults]valueForKey:@"profilePic"]] resultBlock:^(ALAsset *asset){
        UIImage *copyofOriginal = [UIImage imageWithCGImage:[[asset defaultRepresentation]fullScreenImage] scale:0.5 orientation:UIImageOrientationUp];
        profilePic.image = copyofOriginal;
    }failureBlock:nil];
}

记录[info objectForKey:UIImage ...]和NSUserDefaults中保存的值会为我提供完全相同的参考URL。 怎么不设置呢?

===============>>#1 票数:1

如何让用户从图库中选择图像?

想象一下,您有一个MyDummyController控制器,它显示一个“ Pick a Image”按钮。 点击该按钮后,您想打开“电话图库”。 首先,请确保您的控制器实现了UIImagePickerControllerDelegate。

@interface MyDummyController : UIViewController<UIImagePickerControllerDelegate>

接下来,在实现文件中实现以下方法。

    // make sure this method is invoked when you tap "Pick An Image" button
-(void)onTapPickAnImage
{
   UIImagePickerController *imagePicker = [[UIImagePickerController alloc] init];
   imagePicker.delegate = self;
   imagePicker.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
   [self presentViewController:imagePicker animated:YES completion:nil];
}

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
    {
       // here is the image user selected
       UIImage *image = [info objectForKey:@"UIImagePickerControllerOriginalImage"];
       // here is the URL to the image
       NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
    }

如何从图像URL中提取字符串引用?

在不同的持久性系统中,例如核心数据,您不能直接保存NSURL。 这意味着,如果您要将所选图像的参考存储在某个地方,则需要在字符串中使用它。 可以像下面这样完成:

NSURL *url = [info objectForKey:@"UIImagePickerControllerReferenceURL"];
NSString *ref = url.absoluteString;
// now you can persist your string reference somewhere

如何使用字符串引用再次加载图像?

// here we are loading the string reference to image we want to load
NSString *ref = [self loadMyImageRef]; // loadMyImageRef is a dummy method, you can put your implementation here

// ALAssetsLibrary provides a way to access photos/videos in gallery programmatically
ALAssetsLibrary *library = [[ALAssetsLibrary alloc] init];
[library assetForURL:[NSURL URLWithString:ref] resultBlock:^(ALAsset *asset) {
   // here we have received the image data, now you can easily display it wherever you like
   UIImage *image = [UIImage imageWithCGImage:asset.defaultRepresentation.fullResolutionImage];
   NSLog(@"Image loaded successfully!");
} failureBlock:^(NSError *error) {
   NSLog(@"An error occurred while loading image: %@", error.description);
}];

资源:

http://www.to-string.com/2014/04/30/how-to-extract-string-reference-to-an-image-in-ios-and-then-load-the-image-later/

  ask by denikov translate from so

未解决问题?本站智能推荐:

1回复

使用设备库中的文件名初始化UIImageView

我有一张名为IMG_0094.JPG的照片,由设备的相机拍摄。 我想用它初始化我的UIImageView但我的代码不起作用。 以下代码位于viewDidLoad 。 我的NSLOG回归2015-02-26 10:39:54.899 Fiche Contacts [1600:6
4回复

将生成的GIF保存到相机胶卷?

谢谢阅读。 我使用此问题中的方法创建了一个GIF: 通过iOS创建和导出动画gif? 我试图使用似乎能够将非JPG / PNG图像保存到相机胶卷的唯一方法, ALAssetLibrary的writeImageDataToSavedPhotosAlbum:metadata:compl
1回复

将图像保存到已保存的照片后,相机胶卷资产图像不可用

当我的iPhone应用程序启动时,我正在使用ALAssetsLibrary来生成相机胶卷中所有图像的数组。 我将每个图像存储为数组中的ALAsset * 。 稍后在应用程序中,我使用以下方法将图像保存到库中: 图像已成功保存到已保存的相册中。 但是,现在我的问题是当我尝试使用所有图
2回复

ALAssetsLibrary获取相机胶卷

我使用ALAssetsLibrary枚举所有资产组 这是代码: 如何检查一些当前枚举的是CameraRoll ? 编辑:正如我测试的那样,它始终是最后一个,使用此枚举。 但我不确定这是否是规则,是否有任何我错过的参考?
1回复

将相机胶卷中的所有图像存储为数组

我是iOS和Objective-C的新手,但是我试图创建一个包含一个组件的应用程序,该组件可以从相机胶卷中获取所有图像并从中创建幻灯片。 我相信第一步是根据存储在相机胶卷中的所有图像创建一个数组。 然后,我可以从该数组创建动画。 当前,我有一个名为“播放”的按钮,选择该按钮后应将此幻灯片显
1回复

从相机胶卷创建一个UIImages数组

我想从相机胶卷中获取所有图像并从中创建一组UIImages。 我一直试图弄清楚如何做这个约一天,我已经无处可去了。 我似乎无法弄清楚如何仅从相机胶卷中检索物品。 我看到的所有样本似乎都列在所有相册上。 我可能错了。 任何帮助,将不胜感激。 谢谢!
1回复

更改相机胶卷后的ALAsset无效吗?

我使用UIImageWriteToSavedPhotosAlbum()将一些照片写入照片库,并同时使用enumerateAssetsUsingBlock:和朋友显示此资产组( ALAssetsGroupSavedPhotos )的内容。 有时,通过枚举组返回的资产会变成“无效”,这意味着def
1回复

使用AlAssetsLibrary读取iphone相机胶卷时出现内存问题

我正在尝试从iPhone相机胶卷中获取最后一张照片。 我使用以下代码: 它可以工作,但是有缺陷(我正在使用Instruments和Zombies对其进行调试): 似乎读取了相机胶卷中的所有图片。 所以,第一个问题:不枚举AssetsAtIndexes:仅检索指定的图像(at
1回复

将视频放入相机胶卷中的一个特定相册中

我正在相机胶卷中创建特定的专辑。.但是对于我的每次跑步,它都是在相机胶卷中创建一个新专辑,而不是将视频放到同一张专辑中。
1回复

将新照片添加到相机胶卷后,ALAssetsLibrary返回相同的资源 - 目标c

我正在使用ALAssetsLibrary来枚举我保存的照片中的前30张照片。 我已经在AppDelegate创建了属性,以便在我想要的ALAssets每次都能访问ALAssets ,因为ALAssetsLibrary实例的生命周期与ALAssets生命周期相关联。 这是我的代码: 如