Форум программистов, компьютерный форум CyberForum.ru

Программирование iOS/iPhone

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 17, средняя оценка - 4.88
o1eg_bitrix
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 11
#1

Загрузить картинку по URL - Программирование iOS/iPhone

06.11.2012, 07:34. Просмотров 2119. Ответов 4
Метки нет (Все метки)

Использовал следующие методы и все тщетно :

Objective-C
1
2
3
4
5
6
7
8
- (NSImage *)getImageURL:(NSString *)urlString {
NSURL *imageURL = [NSURL URLWithString:urlString];
NSImage *imageFromBundle = [[NSImage alloc] initWithContentsOfURL:imageURL];
return imageFromBundle;
}
 
NSImageView *imageView;
[imageView setImage:[self getImageURL:@"www.google.ru/logo.jpg"]];
Objective-C
1
2
3
NSString* imageURL = [NSString stringWithFormat: @"http://theimageurl.com/?id=%@", [[resultsEntries objectAtIndex:0] objectForKey: @"image_large"]];
NSData* imageData = [[NSData alloc]initWithContentsOfURL:[NSURL URLWithString:imageURL]];   
UIImage* image = [[UIImage alloc] initWithData:imageData];
Прописываю код в DetailViewController.m

Не одна из конструкций не проходит синтаксический контроль.

Подскажите наиболее безболезненный и быстрый путь, что бы прочитать картинку и вывести ее в ячейку cell.image!?

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

Спасибо...
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.11.2012, 07:34     Загрузить картинку по URL
Посмотрите здесь:

Как скачать сайт по URL? Objective-C
JavaFX Кликая по label с емайлом, нужно открыть почтовый клиент, или загрузить url, если label содержит url
Загрузить приложение на сайт так, чтобы можно было открыть на ipad
Загрузить картинку .gif в Image, зная ее URL Delphi
картинку загнать в четырёхугольник Objective-C
Можно ли загрузить список своих приложений в таблицу? Xcode/iOS
Objective-C URL-Scheme
Как правильно использовать закаченую картинку, ретина/не ретина дисплей
Загрузка изображения через URL + UIActivityIndicatorView Objective-C
Почему к url приписываются символы %0A%20%20 ?
Как загрузить близлежащие места?
Поддерживает ли приложение Google Переводчик URL Scheme?

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
06.11.2012, 08:09     Загрузить картинку по URL #2
o1eg_bitrix, забудьте о подгрузке картинок и каких либо других данных синхронно.
Простой способ для Вас - скачать себе AFNetworking с github'a, и воспользоваться категорями для асинхронной загрузки картинок и последующим засетчиванием их в UIImageView.
o1eg_bitrix
0 / 0 / 0
Регистрация: 23.10.2012
Сообщений: 11
06.11.2012, 08:40  [ТС]     Загрузить картинку по URL #3
Я объект "UIImageView" не использую на сцене или это критично!?
Мне нужно именно в ячейки таблицы вывести или высоту ячейки я не смогу поменять в зависимости от размеров картинки!?
zulkis
681 / 608 / 38
Регистрация: 13.01.2011
Сообщений: 1,724
06.11.2012, 08:57     Загрузить картинку по URL #4
Ааа, я не посмотрел. Мак...
Ну тогда нужно смотреть что не так в коде. Но все равно, синхронные закачки - зло.
Max Patsy
курлык-курлык
84 / 93 / 3
Регистрация: 26.11.2009
Сообщений: 396
Записей в блоге: 1
06.11.2012, 10:21     Загрузить картинку по URL #5
Вот скачка картинки, но она загружется на девайс и отображается в ImageView

*.m
Objective-C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
#import "ViewController.h"
 
@interface ViewController ()
 
@end
 
@implementation ViewController
@synthesize img;
 
- (void)viewDidLoad
{
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
}
 
- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}
 
- (IBAction)onDownload:(id)sender {
    //Definitions
    NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    
    //Get Image From URL
    UIImage * imageFromURL = [self getImageFromURL:@"http://inventos.ru/wp-content/uploads/2012/09/%D0%BB%D0%BE%D0%B3%D0%BE_180%D1%85180_2.jpg"];
    
    //Save Image to Directory
    [self saveImage:imageFromURL withFileName:@"My Image" ofType:@"png" inDirectory:documentsDirectoryPath];
 
 
    
    NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
    
    if ([paths count] > 0)
        NSLog(@"Documents directory: %@", [paths objectAtIndex:0] );
}
 
-(UIImage *) getImageFromURL:(NSString *)fileURL {
    UIImage * result;
    
    NSData * data = [NSData dataWithContentsOfURL:[NSURL URLWithString:fileURL]];
    result = [UIImage imageWithData:data];
    
    return result;
}
 
-(void) saveImage:(UIImage *)image withFileName:(NSString *)imageName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
    if ([[extension lowercaseString] isEqualToString:@"png"]) {
        [UIImagePNGRepresentation(image) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"png"]] options:NSAtomicWrite error:nil];
    } else if ([[extension lowercaseString] isEqualToString:@"jpg"] || [[extension lowercaseString] isEqualToString:@"jpeg"]) {
        [UIImageJPEGRepresentation(image, 1.0) writeToFile:[directoryPath stringByAppendingPathComponent:[NSString stringWithFormat:@"%@.%@", imageName, @"jpg"]] options:NSAtomicWrite error:nil];
    } else {
        NSLog(@"Image Save Failed\nExtension: (%@) is not recognized, use (PNG/JPG)", extension);
    }
}
 
-(UIImage *) loadImage:(NSString *)fileName ofType:(NSString *)extension inDirectory:(NSString *)directoryPath {
    UIImage * result = [UIImage imageWithContentsOfFile:[NSString stringWithFormat:@"%@/%@.%@", directoryPath, fileName, extension]];
    
    return result;
}
- (IBAction)onLoadToView:(id)sender {
    NSString * documentsDirectoryPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];
    UIImage *imageFromWeb = [self loadImage:@"My Image" ofType:@"png" inDirectory:documentsDirectoryPath];
    [img setImage:imageFromWeb];
}
@end

*.h
Objective-C
1
2
3
4
5
6
7
8
#import <UIKit/UIKit.h>
 
@interface ViewController : UIViewController
- (IBAction)onDownload:(id)sender;
@property (weak, nonatomic) IBOutlet UIImageView *img;
- (IBAction)onLoadToView:(id)sender;
 
@end
Интерфейс состоит из текстового поля, которое я впрочем не использую и двух кнопок - загрузки картикни и ее отображения
Yandex
Объявления
06.11.2012, 10:21     Загрузить картинку по URL
Ответ Создать тему
Опции темы

Текущее время: 20:05. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru