Поиск и сохранение изображений из изображений Google в iphone SDK - PullRequest
6 голосов
/ 24 мая 2011

В моем приложении мне нужно искать изображения из картинок Google по определенному слову.

например, я хочу найти изображение по Earth.

Как искать изображения из Google Images и сохранять выбранные изображения в каталоге документов?

Можно ли использовать какой-либо API?Или любой другой способ сделать это?

Ответы [ 3 ]

10 голосов
/ 24 мая 2011

Google API

API для поиска изображений Google / Руководство разработчика JSON .

Вам придется отображать изображения самостоятельно, в результате вы получите ответ json. Однако это даст вам максимальный контроль. Результат будет содержать уменьшенный URL-адрес, который можно использовать для предварительного просмотра.

Загрузка изображений

Загрузка изображений может быть выполнена разными способами:

Использование API Google работает только при определенных обстоятельствах, таких как

" Приложения, использующие этот интерфейс, должны соблюдать все существующие Условия обслуживания. Самое главное, вы должны правильно идентифицировать себя в своих запросах. "

Сохранение изображений

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

NSString *aFileName = @"myImage.jpg";
NSFileManager *fileManager = [NSFileManager defaultManager];
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentDirectory = [paths objectAtIndex:0]; 
NSString *path = [documentDirectory stringByAppendingPathComponent:aFileName];

[myImageAsData writeToFile:path atomically:YES];

в качестве альтернативы, если у вас уже есть изображение UIImage :

NSData *myImageAsData = [NSData dataWithData:UIImagePNGRepresentation(anImage)];
[myImageAsData writeToFile:path atomically:YES];
3 голосов
/ 24 мая 2011

Во-первых, вы хотите API поиска Google Image. http://code.google.com/apis/imagesearch/

Далее, если вы круты, ориентируясь только на iOS 4.0 и выше, вы можете использовать Grand Central Dispatch и очень полезные API-интерфейсы для синхронных данных, включенные в iOS. В частности, я имею в виду [NSData dataWithContentsOfURL:]. Это будет блокировать поток, пока он не загрузит весь образ, поэтому не запускайте его в основном потоке . К счастью, GCD позволяет с легкостью создавать объекты в фоновом потоке. Так что ваш код, вероятно, будет выглядеть примерно так:

dispatch_queue_t NetworkQueue = dispatch_queue_create("NetworkQueue", 0);

dispatch_async(NetworkQueue,^{
    NSData* imageResultsData = [NSData dataWithContentsOfURL:
    [NSURL urlWithString:@"https://ajax.googleapis.com/ajax/services/search/images?some_images_query_here"];
   //do something with that data
   //let's say you unpacked it into an NSArray of NSURLs
   for(NSURL* url in myImageArray) {
        dispatch_async(NetworkQueue,^{
            NSData* imageData = [NSData dataWithContentsOfURL:url];
            [imageData writeToFile:file_name_here atomically:YES];
        });
   }
});
0 голосов
/ 23 августа 2016

Поиск картинок Google не работает:

"API поиска картинок Google официально объявлен устаревшим 26, 2011. Он будет продолжать работать в соответствии с нашей политикой амортизации, но количество запросов, которые вы можете сделать в день, может быть ограничено. Мы рекомендуем использовать API пользовательского поиска, который теперь поддерживает изображение поиск. "

Вот ссылка на API пользовательского поиска

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...