IOS 調整內存中的圖片大小實例詳解
在從網路download圖片,或者從相冊讀取圖片的時候,如果ImageView的本身就是固定的300*200,那麼載入2000*2000的圖片是很浪費內存的。
2000*2000的內存占用是2000*2000*4bit
以下兩個函數可以用來創建一個新的按照固定大小的圖片。簡單來說,就是Core Graphics來創建一個bitmap,然後生成一個圖片。
- (UIImage*)imageWithImage:(UIImage*)image
scaledToSize:(CGSize)newSize;
{
UIGraphicsBeginImageContext( newSize );
[image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
-(UIImage*)imageWithImage:(UIImage *)image
resizeFactor:(CGFloat)scale
{
CGSize originalSize = image.size;
CGSize newSize = CGSizeMake(originalSize.width * scale, originalSize.height* scale);
UIGraphicsBeginImageContext(newSize);
[image drawInRect:CGRectMake(0,0,newSize.width, newSize.height)];
UIImage * newImage = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
return newImage;
}
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!