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; }
感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!