標籤:
/** * 指定Size壓縮圖片 (圖片會壓縮變形) * * @param image 原圖 * @param size 壓縮size * * @return 壓縮後的圖片 */-(UIImage*)OriginImage:(UIImage *)image scaleToSize:(CGSize)size{ // 建立一個bitmap的context // 並把它設定成為當前正在使用的context UIGraphicsBeginImageContext(size); // 繪製改變大小的圖片 [image drawInRect:CGRectMake(0, 0, size.width, size.height)]; // 從當前context中建立一個改變大小後的圖片 UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext(); // 使當前的context出堆棧 UIGraphicsEndImageContext(); // 返回新的改變大小後的圖片 return scaledImage;}/** * 等比縮放圖片裁剪指定地區圖片 * * @param image 原圖 * @param size 裁剪範圍 * * @return 裁剪後的圖片 */-(UIImage *)compressImageWith:(UIImage *)image scaleToSize:(CGSize)size{ // 原圖寬 CGFloat imageWidth = image.size.width; // 原圖高 CGFloat imageHeight = image.size.height; // 縮放比例 CGFloat widthScale = imageWidth /size.width; CGFloat heightScale = imageHeight /size.height; // 建立一個bitmap的context // 並把它設定成為當前正在使用的context UIGraphicsBeginImageContext(CGSizeMake(size.width, size.height)); // 橫屏圖片 if (widthScale > heightScale) { [image drawInRect:CGRectMake(0, 0, imageWidth /heightScale , size.height)]; } else { // 豎屏圖片 [image drawInRect:CGRectMake(0, 0, size.width , imageHeight /widthScale)]; } // 從當前context中建立一個改變大小後的圖片 UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext(); // 使當前的context出堆棧 UIGraphicsEndImageContext(); return newImage; }
IOS 縮放圖片常用方法