2016-08-31 1 views
1

Есть ли способ проверить, существует ли конкретный файл изображения в моем iPhone. Допустим, мое имя изображения IMG_123.JPG. Я хочу найти это изображение, и если он существует, я хочу создать объект NSInputStream, используя этот файл. Если изображение отсутствует в NSBundle, оно может быть сохранено в библиотеке фотографий или где-нибудь.Как выполнить поиск файла изображения

Пожалуйста, помогите мне. Благодаря

UPDATE

NSArray *pathArray = NSSearchPathForDirectoriesInDomains(NSLibraryDirectory, NSUserDomainMask, YES); 
NSString* documentsDirectory = [pathArray objectAtIndex:0]; 
NSString* dataPath = [documentsDirectory stringByAppendingPathComponent:@"IMG_2594.JPG"]; 

UPDATE 2

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

copyOfOriginalImage = [UIImage imageWithCGImage:[[imageAsset defaultRepresentation] fullResolutionImage]]; 

Преобразование изображения в NSData

imageData = UIImageJPEGRepresentation(copyOfOriginalImage, 1.0); 

Затем преобразовать его в base64

strEncoded=[imageData base64EncodedStringWithOptions:0]; 
+0

Является ли файл изображения в каталоге документов в песочнице ??? –

+0

нет Я только что сохранил его в своей библиотеке фотографий – Irrd

+0

позволяет сказать, что его изображение было снято камерой телефона. И я могу получить его имя с помощью подборщика изображений – Irrd

ответ

1

Ваше изображение может быть documentdirectory или assetsappbundle или в приложении.

Фотографии, которые находятся в photolibrary, вы не можете назвать это частью базы данных своего приложения.

Таким образом, вы можете проверить, что изображение доступно в documentdirectory или любой каталог как tempdirectory или customdirectory, если вы сделали, как,

NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0]; 

NSFileManager *manager = [NSFileManager defaultManager]; 

NSArray *filesIndir = [manager contentsOfDirectoryAtPath:path error:nil]; 

if ([filesIndir containsObject:@"IMG_123.JPG"]) { 

    NSLog(@"document directory contains : IMG_123.JPG"); 
} 

Он будет проверять непосредственно в директории документа. Если вы создаете пользовательский каталог в каталоге документов, укажите путь к нему.

Теперь Если изображение в приложение пачке, то вы можете проверить это нравится,

UIImage *image = [UIImage imageNamed:@"IMG_123.JPG"]; 

if (image) { 

    NSLog(@"yes image available in app bundle"); 
} 

Если изображение находится в assests, то вы можете проверить это, как,

UIImage *image2 = [UIImage imageNamed:@"IMG_123"]; 

if (image2) { 

    NSLog(@"yes image available in assets"); 
} 

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

См. This SO answer для управления этим.

Вы также можете обратиться к this so post.

+0

Что я сделал sofar, сначала я беру имя изображения из библиотеки активов. Затем я хочу найти реальный путь. см. мой обновленный вопрос. Теперь я хочу прочитать этот фактический файл, используя NSInputStream. – Irrd

+0

Правильно ли это, как я это сделал, и могу ли я прочитать фактический файл, используя этот путь, используя NSInputStream? – Irrd

+0

Что вы хотите достичь? скажите мне требование – Lion

 Смежные вопросы

  • Нет связанных вопросов^_^