【问题标题】:How to know image present at the url如何知道网址上的图片
【发布时间】:2013-05-29 07:31:05
【问题描述】:

我有使用ELCImagePickerController 挑选的图片的网址。我存储了网址以供将来参考。

我使用以下方法获取该 URL:

[dict valueForKey:UIImagePickerControllerReferenceURL];

现在问题出现了,一段时间后用户从照片库中删除了该特定图像 我将使用 URL 访问该图像。 我的应用没有崩溃。

我尝试过使用 NSUrl 方法

[imagePath checkResourceIsReachableAndReturnError:&err]

我也试过类似的东西:

-(BOOL)findImage:(NSURL*)path
{
    dispatch_group_t group = dispatch_group_create();
    dispatch_group_enter(group);
    __block BOOL flag=YES;
    ALAssetsLibraryAssetForURLResultBlock resultblock = ^(ALAsset *myasset)
    {
        ALAssetRepresentation *rep = [myasset defaultRepresentation];
        CGImageRef iref = [rep fullScreenImage];
        if (iref) {
            flag=YES;
            dispatch_group_leave(group);
        }
    };
    ALAssetsLibraryAccessFailureBlock failureblock  = ^(NSError *myerror)
    {
        NSLog(@"cant get image - %@",[myerror localizedDescription]);
        flag=NO;
    };
    ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
    [assetslibrary assetForURL:path resultBlock:resultblock failureBlock:failureblock];

    dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
    dispatch_release(group);
    [assetslibrary release];

    return flag;
}

示例网址:

assets-library://asset/asset.JPG?id=E862927E-E646-448A-9EB6-A7D48668B3DC&ext=JPG

但没有成功。

如何知道特定 URL 中的图片。

如果有人能在这方面帮助我,将不胜感激。

提前致谢。

【问题讨论】:

  • stackoverflow.com/questions/6008399/… 看看这个可能对你有帮助
  • @PrakashDesai 我浏览了您提供的链接。我需要检查 iphone/ipad 的照片库中是否存在文件。
  • 试试 [[NSFileManager defaultManager] fileExistsAtPath:imagePath]
  • @Alex 我试了一遍又一遍,但没有成功。
  • 您能否在您的问题中添加图片的路径(url),它可能对我们有所帮助。

标签: iphone ios uiimage


【解决方案1】:

对于这种情况,您需要检查 ALAssetRepresentation *rep = [myasset defaultRepresentation] 为 nil。

if(rep != nil){ //write your code.. }

【讨论】:

    【解决方案2】:

    解决了 findImage 方法更改的问题

    -(BOOL)findImage:(NSURL*)path
    {
        dispatch_group_t group = dispatch_group_create();
        dispatch_group_enter(group);
        __block BOOL flag=YES;
        ALAssetsLibrary* assetslibrary = [[ALAssetsLibrary alloc] init];
        [assetslibrary assetForURL:path resultBlock:^(ALAsset *asset) {
            if (asset==nil)
            {
                flag=NO;
            }
            else
            {
                flag=YES;
            }
                dispatch_group_leave(group);
            } failureBlock:^(NSError *error){
                    NSLog(@"operation was not successfull!");
                    dispatch_group_leave(group);
        }];
        dispatch_group_wait(group, DISPATCH_TIME_FOREVER);
        dispatch_release(group);
        [assetslibrary release];
        return flag;
    }
    

    【讨论】:

      猜你喜欢
      • 2011-05-19
      • 1970-01-01
      • 1970-01-01
      • 2011-05-08
      • 1970-01-01
      • 2018-07-21
      • 2021-10-27
      • 2016-10-11
      • 1970-01-01
      相关资源
      最近更新 更多