2014-10-28 2 views
0

다음과 같이 블록 동안 다운로드 한 이미지의 크기를 결정하고 그에 따라 uiimageview의 크기를 설정합니다. 어떻게 Afnetworking하여 UIImage의 실제 크기를 얻을 수 있습니까, 제발 도와주세요.Afnetworking 2.0에 의해 URL에서 UIImage의 절반 크기를 얻는 것

NSMutableURLRequest * request = [NSMutableURLRequest requestWithURL : [NSURL URLWithString : str1]];

__weak UIImageView *weakImageView = cell.imageView; 

[cell.imageView setImageWithURLRequest:request 
         placeholderImage:[UIImage imageNamed:@"Plceholder-50X60.png"] 
           success:^(NSURLRequest *request, NSHTTPURLResponse *response, UIImage *image) 
{ 
    NSLog(@"image = %f, imageheight = %f", image.size.width, image.size.height); 

    UIImageView *strongImageView = weakImageView; //make local strong reference to protect against race conditions 
    if (!strongImageView) return; 

}failure:^(NSURLRequest *request, NSHTTPURLResponse *response, NSError *error){ 
    NSLog(@"Request failed with error: %@", error); 
}]; 

답변

0

이미지 크기는 디스크의 이미지 파일 이름에 따라 다릅니다. 파일의 이름은 Plceholder-50X60.png 경우

는 실제 크기는 image.scale 1.0 image.size이지만, 그 이름이 [email protected] 경우, 실제 크기는 image.scale 2.0 CGSizeMake(image.size.width*image.scale, image.size.height*image.scale) 될 것이다.

트릭이 imageNamed: 방법이다 imageNamed:의 기준 참조 다음 기기의 화면이 1.0의 배율을 갖는 경우

이상 아이폰 OS 4 실행 장치에서이 동작은 동일하다. 화면의 눈금이 2.0 인 경우 이 방법은 먼저 동일한 파일 이름 에 @ 2x 접미사가 추가 된 이미지 파일을 검색합니다. 예를 들어, 파일 이름이 단추 인 경우, 먼저 @ 2x 단추를 찾습니다. 2 배가되면 그 이미지는 으로로드되고 반환 된 UIImage 객체의 scale 속성은 으로 2.0으로 설정됩니다. 그렇지 않으면 수정되지 않은 파일 이름을로드하고 축척 속성을 1.0으로 설정합니다.

결론 : 이미지 파일의 이름과 관계없이 CGSizeMake(image.size.width*image.scale, image.size.height*image.scale)을 사용하면 이미지의 실제 크기를 얻을 수 있습니다.