UIImage를 이용하여 로컬 리소스 파일로 존재하는 이미지 파일을 읽어오는 것은 많이 해보셨을 것입니다.
이번에는 원격지의 이미지를 읽어오도록 하는 것을 시도해 보겠습니다. 다음의 소스를 참고하세요.
[code]- (void)applicationDidFinishLaunching:(UIApplication *)application {
// 이미지를 읽어올 주소
NSURL *url = [NSURL URLWithString:@”http://www.segye.com/content/image/2009/01/06/20090106000247_0.jpg”];
NSData *data = [NSData dataWithContentsOfURL:url];
// 데이터가 정상적으로 읽혔는지 확인한다. 네트워크가 연결되지 않았다면 nil이다.
if(data) {
UIImage *image = [[UIImage alloc] initWithData:data];
UIImageView *view = [[UIImageView alloc] initWithImage:image];
[view setFrame:CGRectMake(0.0f, 0.0f, image.size.width, image.size.height)];
[window addSubview:view];
[view release];
[image release];
}
// 데이터를 정상적으로 읽어오지 못했을 경우의 처리
else
{
UILabel *label = [[UILabel alloc] initWithFrame:[[UIScreen mainScreen] applicationFrame]];
[label setText:@”Fail…”];
[label setTextAlignment:UITextAlignmentCenter];
[window addSubview:label];
[label release];
}
[window makeKeyAndVisible];
}[/code]
이 코드에서 중요하게 보아야 할점은 NSData가 nil인지 아닌지를 판단하여 데이터를 가져왔는지 여부를 확인할 수 있다는 점입니다.
또한 가져온 이미지를 UIImage로 읽어들인 후에 size구조체에 접근하여 이미지의 크기를 얻어올 수 있습니다.
어이쿠, 꽃보다 남자의 이미지가 아이팟의 가로길이인 320보다 커서 좀 짤렸네요;; 미안하다 잔디야~ㅠㅠ