Конвертировать имя файла в NSString в UIImage для фотографии, хранящейся в библиотеке ресурсов - PullRequest
1 голос
/ 03 апреля 2012

Мне удалось получить исходное имя файла фотографии, хранящейся в библиотеке ресурсов, используя следующий код:

NSURL *url = [[NSURL alloc] initWithString:project.photo];
        ALAssetsLibrary* library = [[ALAssetsLibrary alloc] init];

        [library assetForURL:url resultBlock:^(ALAsset *asset) {

            ALAssetRepresentation *rep = [asset defaultRepresentation];

            _filename = [rep filename];
            NSLog(@"filename for image is: %@", _filename);

            if (_filename != nil)
            {

                UIImage *image = [UIImage imageWithContentsOfFile:_filename];
                NSLog(@"image is! %f", image.size.height);

                [image drawInRect:CGRectMake( (pageSize.width - image.size.width/2)/2, 350, image.size.width/2, image.size.height/2)];

            }

Переменная NSString _filepath хранит исходный путь к файлу изображения как:

IMG_0294.JPG

Все, что я хочу сделать, это получить это изображение из фотогалереи и нарисовать его в PDF-документе, используя следующий код:

        [image drawInRect:CGRectMake( (pageSize.width - image.size.width/2)/2, 350, image.size.width/2, image.size.height/2)];

Этот код рисования определенно работает, так какЯ пробовал это с изображением, хранящимся в каталоге приложения.Мне просто нужно найти способ использования пути к файлу, чтобы создать UIImage или указать на полный каталог этой фотографии.

Переменная изображения возвращается как ноль при выводе на консоль.

Любая помощь будет великолепна.

Ответы [ 2 ]

2 голосов
/ 03 апреля 2012

Я предлагаю вам взять url фотографии, а не только filename:

imageURL = [rep url];

. Вы можете использовать эту imageURL с методом ALAssetsLibrary assetForURL:resultBlock:failureBlock: длясоздать UIImage.

Существует множество примеров кода, показывающих, как использовать метод assetForURL.

Надеюсь, это поможет.

0 голосов
/ 11 апреля 2012

Вы не можете получить изображение из библиотеки ресурсов, перейдя по нему по пути или URL.Вы должны использовать, в вашем случае, UIImage * image = [UIImage imageWithCGImage: rep.fullResolutionImage];

или fullScreenImage или что-то еще ...

...