如何使用SDWebImage获取缩略图?

时间:2016-04-29 06:54:21

标签: ios objective-c sdwebimage

在用户选择图像之前,我不想从服务器下载图像。我想显示图像的缩略图。如何获取缩略图? 我可以使用服务器上的URL下载完整的图像。

如果服务器上的图像比如1MB,如何获取缩略图版本?

3 个答案:

答案 0 :(得分:3)

实现目标有两种方法:

方式1:

你无法获得缩略图。如果您的文件大小为1 MB,则必须使用SDWebImage下载它。下载完成后,创建图像缩略图。现在你可以删除1MB的图像。

创建缩略图代码:

+ (UIImage *)imageWithImage:(UIImage *)image scaledToFillSize:(CGSize)size
{

CGFloat scale = MAX(size.width/image.size.width, size.height/image.size.height);
CGFloat width = image.size.width * scale;
CGFloat height = image.size.height * scale;
CGRect imageRect = CGRectMake((size.width - width)/2.0f,
                              (size.height - height)/2.0f,
                              width,
                              height);

UIGraphicsBeginImageContextWithOptions(size, NO, 0);
[image drawInRect:imageRect];
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();    
UIGraphicsEndImageContext();
return newImage;
}

方式2:

在服务器端,您必须同时保留图像原始图像和缩略图。因此,首先使用SDWebImage加载缩略图。当用户点击缩略图时,使用SDWebImage从服务器获取原始图像。

答案 1 :(得分:1)

您无法通过ios device对服务器进行更改。您可以将数据放入服务器或从中获取数据。所以,如果大图像存储在服务器上,那么你就无法从ios制作缩略图。您可以下载它,一旦图像进入您的设备,您就可以根据需要进行修改。

因此,将相同图像的两个副本保存到服务器是更好的方法,这不是服务器端的艰巨任务。 :)

答案 2 :(得分:0)

如果您有绝对URL并且只想使用SDWebImage显示图像。

使用以下代码

SDWebImageManager *manager = [SDWebImageManager sharedManager];
    [manager downloadImageWithURL:[NSURL URLWithString:strDisplayURL]
                          options:0
                         progress:^(NSInteger receivedSize, NSInteger expectedSize) {
                             // progression tracking code
                         }
                        completed:^(UIImage *image, NSError *error, SDImageCacheType cacheType, BOOL finished, NSURL *imageURL) {

                            if (image)
                            {

                              dispatch_async(dispatch_get_main_queue(), ^{

                                    profileImageView.image = image;

                                });

                            }

                        }];

使用图像模式。

enter image description here

使角半径为图像视图高度或宽度的一半。所以它将成为圆形图像视图。