2013-02-08 5 views
-1

어떻게 앱에 이미지를 다운로드 할 수 있습니까? 마치 내 웹 사이트에서 이미지를 가져 와서 아이폰 앱에 다운로드하여 앱에 표시하고 싶습니다. 기본적으로 이미지는 URL로 표시되지 않습니다.어떻게 앱에 이미지를 다운로드 할 수 있습니까?

보다 구체적인 :

어떻게있는 UIImage를 사용하지 않고 응용 프로그램에 이미지를 다운로드합니까. 이미지를 가져 와서 파일 이름 "anne.png"로 다운로드 한 다음 UIImage를 사용하여 앱 전체에서 anne.png로 참조하고 싶습니다. 보기 - 먼저 앱을 다운로드하여 다른 사람이 앱을 다시 방문하면 이미지를보고 그동안 기본 이미지를 볼 수 있도록 다운로드하려고합니다. 감사합니다.

+5

[당신은 시도 무엇?] (http://mattgemmell.com/2008/12/08/what-have-you-tried/) I가 이미지를 다운로드하려면 어떻게 –

답변

0

단일 이미지의 경우 다음을 사용할 수 있습니다. 이미지가 완전히 다운로드 될 때까지 UI가 차단됩니다.

[UIImage imageWithData:[NSData dataWithContentsOfURL:photoURL]]; 

은 UI를 차단하지 않고 이미지를 다운로드하려면 :

dispatch_queue_t downloadQueue = dispatch_queue_create(“image downloader”, NULL); 

dispatch_async(downloadQueue, ^{ 
    [NSData dataWithContentsOfURL:photoURL]; 
    dispatch_async(dispatch_get_main_queue(), ^{ 
     UIImage *image = [UIImage imageWithData:imageData]; 
     // Code to show the image in the UI goes here 
    }); 
}); 

UIImageWriteToSavedPhotosAlbum를 사용할 수있는 전화 카메라 롤에 이미지를 저장합니다.

이미지를 앱의 디렉토리에 저장합니다. 을 NSData의는 웹 사이트에서 여러 이미지를 다운로드하려면 writeToFile:atomically:

어쩌면 이것은 당신을 도울 수 사용

What's the best way to download multiple images and display multiple UIImageView?

+0

을 UIImage를 사용하지 않고 응용 프로그램. 이미지를 가져 와서 파일 이름 "anne.png"로 다운로드 한 다음 UIImage를 사용하여 앱 전체에서 anne.png로 참조하고 싶습니다. 보기 - 먼저 앱을 다운로드하여 다른 사용자가 앱을 다시 방문하면 이미지를 볼 수 있습니다. 감사.? – Jasmine

+0

@BamBam 위에서 제안한 것처럼'NSData'를 사용하면'writeToFile'을 사용하여이를 영구 저장 장치에 저장할 수 있습니다. – Rob

0

http://mobiledevelopertips.com/cocoa/download-and-create-an-image-from-a-url.html

URL 원격 이미지

에 우리는 URL을 생성하여 시작 원격 리소스에 :

NSURL *url = [NSURL URLWithString: @"http://mobiledevelopertips.com/images/logo-iphone-dev-tips.png"]; 

을 NSData 다음 단계는 원격 영상 내용을 유지하는있는 NSData 객체로 구성 URL에서 다운로드 한 데이터를 사용하여있는 UIImage, 구축하는 것입니다

에서있는 UIImage 만들기 :

UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; 

함께하기

UIImageView fr을 생성하여 원격 뷰를 서브 뷰로 추가하는 방법은 다음과 같습니다. 옴 위에있는 UIImage :

NSURL *url = [NSURL URLWithString:@"http://mobiledevelopertips.com/images/logo-iphone-dev-tips.png"]; 
UIImage *image = [UIImage imageWithData: [NSData dataWithContentsOfURL:url]]; 
    [self.view addSubview:[[UIImageView alloc] initWithImage:image]]; 
+0

하지만 차단 되나요? 차단하면 어떻게해야합니까? 이 파일을 사용자의 앱 저장소에 다운로드 할 수 있습니까? – Jasmine

+0

시도해 보셨습니까? 차단 되었습니까 ??? – Garry

+0

@BamBam 일반적으로 1 단계와 2 단계를 백그라운드 대기열에서 수행하고 UI 업데이트 만 수행하면 기본 대기열에 "함께 배치"됩니다. – Rob

관련 문제