2014-10-28 35 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.sizeimage.scale 1.0,但如果它的名字是[email protected],它的实际大小是CGSizeMake(image.size.width*image.scale, image.size.height*image.scale)image.scale 2.0。

诀窍是在imageNamed:方法,见imageNamed:参考:

在运行iOS 4或更高版本的设备,该行为是相同的,如果 设备的屏幕具有1.0的比例。如果屏幕的比例为2.0,,则此方法首先搜索具有相同文件名的图像文件 并附加@ 2x后缀。例如,如果文件的名称是 按钮,它首先搜索按钮@ 2x。如果它找到一个2倍,它将加载 该映像并将返回的UIImage对象 的scale属性设置为2.0。否则,它加载未修改的文件名并将比例 属性设置为1.0。

结论:无论图像文件的名称是什么,都可以使用CGSizeMake(image.size.width*image.scale, image.size.height*image.scale)来获取图像的实际大小。