2016-08-24 9 views
3

私は200px x 200px UIImageViewUICollectionViewCellというURLの画像を表示しています。問題は、URLによってどの解像度の画像が提供されているのかわからないため、メモリ消費量のためにUIImageViewに配置する前にサイズを変更する方が良いと思います。サイズ変更AlamofireImageで画像をダウンロード

私はすでに、私は疑問に思って画像

let url = NSURL(string: "http:\(product.picUrl)") 
self.imgProductItem.af_setImageWithURL(url!, placeholderImage: UIImage(named: "app_default-resize")) 

をダウンロードするalamofireを使用することがUIImageViewに配置するために使用する前に、まずそれをリサイズする方法はありますか?そして、メモリ使用量を節約するために画像をダウンロードするためのヒントがあれば、それを聞きたいと思います。

ご協力いただければ幸いです。ありがとうございました。

答えて

8

あなたは、フィルタを使用することができます。

let url = URL(string: ...)! 
let placeholder = UIImage(named: "app_default-resize") 
let filter = AspectScaledToFillSizeFilter(size: imageView.frame.size) 
imageView.af_setImage(withURL: url, placeholderImage: placeholder, filter: filter) 

https://github.com/Alamofire/AlamofireImage#image-filters-1を参照してください。

スウィフト2バージョンについては、previous revision of this answerを参照してください。

0
func ResizeImage(image: UIImage, targetSize: CGSize) -> UIImage { 

    let rect = CGRectMake(0, 0, targetSize.width, targetSize.height) 

    UIGraphicsBeginImageContextWithOptions(targetSize, false, 1.0) 
    image.drawInRect(rect) 
    let newImage = UIGraphicsGetImageFromCurrentImageContext() 
    UIGraphicsEndImageContext() 

    return newImage 
} 
+0

alamofireにはこれらの機能が含まれていませんか? –

+0

Alamofireはそれ自体でサイズ変更を行うとは思わないが、URLやNSDataを使ってイメージを取得し、イメージを作成してサイズを変更する必要があると確信している。 Alamofireは、 "データベースからのものを取得する" APIのようなものです。 – impression7vx

+2

フィルタを使用してサイズ変更します。 https://github.com/Alamofire/AlamofireImage#image-filters-1を参照してください。 – Rob

関連する問題