ios UIImage縮放

來源:互聯網
上載者:User

標籤:

將UIImage縮放到指定大小尺寸:

- (UIImage *)scaleToSize:(UIImage *)img size:(CGSize)size{  

   // 建立一個bitmap的context  

    // 並把它設定成為當前正在使用的context  

   UIGraphicsBeginImageContext(size);  

   // 繪製改變大小的圖片  

    [img drawInRect:CGRectMake(0, 0, size.width, size.height)];  

    // 從當前context中建立一個改變大小後的圖片  

    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();  

    // 使當前的context出堆棧  

    UIGraphicsEndImageContext();  

   // 返回新的改變大小後的圖片  

    return scaledImage;  

}



根據圖片的大小等比例壓縮返回圖片

02+(UIImage *)fitSmallImage:(UIImage *)image

03{

04    if (nil == image)

05    {

06        return nil;

07    }

08    if (image.size.width

09    {

10        return image;

11    }

12    CGSize size = [DSMDataConvert fitsize:image.size];

13    UIGraphicsBeginImageContext(size);

14    CGRect rect = CGRectMake(0, 0, size.width, size.height);

15    [image drawInRect:rect];

16    UIImage *newing = UIGraphicsGetImageFromCurrentImageContext();

17    UIGraphicsEndImageContext();

18    return newing;

19}

+ (CGSize)fitsize:(CGSize)thisSize

02{

03    if(thisSize.width == 0 && thisSize.height ==0)

04        return CGSizeMake(0, 0);

05    CGFloat wscale = thisSize.width/IMAGE_MAX_SIZE_WIDTH;

06    CGFloat hscale = thisSize.height/IMAGE_MAX_SIZE_GEIGHT;

07    CGFloat scale = (wscale>hscale)?wscale:hscale;

08    CGSize newSize = CGSizeMake(thisSize.width/scale, thisSize.height/scale);

09    return newSize;

10}




1. 用下面的方法選中你要壓縮的圖片,然後輸出到sentencePic這個uiimageview中,你調用這個sentencepic發送到伺服器就行了。

2. 設定壓縮比例大小的是這個:imageFrame。你在viewdidload中,CGRect   imageFrame = sentencePic.frame; //其中sentencePic.frame是你想要截取圖片的尺寸。自行設定


-(void) imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info{
    
    UIImage *chosenImage = [info objectForKey:UIImagePickerControllerEditedImage];
    UIImage *sharkenImage = shrinkImage(chosenImage, imageFrame.size);
    sentencePic.image = sharkenImage;
    
    [picker dismissModalViewControllerAnimated:YES];
}



static UIImage *shrinkImage(UIImage *original, CGSize size){
    CGFloat scale = [UIScreen mainScreen].scale;
    CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
    
    CGContextRef context = CGBitmapContextCreate(nil, size.width *scale, size.height *scale, 8, 0, colorSpace, kCGImageAlphaPremultipliedFirst);//NULL
    CGContextDrawImage(context, CGRectMake(0, 0, size.width *scale, size.height *scale), original.CGImage);
    CGImageRef shrunken = CGBitmapContextCreateImage(context);
    UIImage *final = [UIImage imageWithCGImage:shrunken];
    CGContextRelease(context);
    CGImageRelease(shrunken);
    return final;
}


ios UIImage縮放

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.