现在的位置: 首页 > 综合 > 正文

iphone缩小uIImage图片

2013年08月15日 ⁄ 综合 ⁄ 共 1104字 ⁄ 字号 评论关闭
UIImage的缩小
有时候,项目中,要用到上传图片,从图片库里取出的图片有的太大了,而要上传的时候,会很费时间,而且也没必要太大,所以就把图片综缩小一下,再传!
#pragma UIImagePickerDelagate

-(void)imagePickerController:(UIImagePickerController *)picker didFinishPickingImage:(UIImage *)image editingInfo:(NSDictionary *)editingInfo
{
    [self.imagePopoverController dismissPopoverAnimated:YES];
    /*
     选取成功后在界面上进行显示
     */
    //压缩图片
    int iWidth = image.size.width;
    int iHeight = image.size.height;
    if (iWidth>300) {//300你自定义大小,想要弄多大,就弄多大
        iWidth = 300;
        iHeight = image.size.height*iWidth/image.size.width;
        if (iHeight>300) {
            iHeight = 300;
            iWidth = image.size.width*iHeight/image.size.height;
        }
    }
    image = [self scaleToSize:image :CGSizeMake(iWidth, iHeight)];//主要在这里
    
    NSData* imageData = UIImagePNGRepresentation(image);
    
    [self saveImage:imageData WithName:@"pic.jpg"];//保存图片
    
    
}
//图片缩放
- (UIImage *)scaleToSize:(UIImage *)image :(CGSize)newsize {
    // 创建一个bitmap的context
    // 并把它设置成为当前正在使用的context
    UIGraphicsBeginImageContext(newsize);
    
    // 绘制改变大小的图片
    [image drawInRect:CGRectMake(0, 0, newsize.width, newsize.height)];
    
    // 从当前context中创建一个改变大小后的图片
    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();
    
    // 使当前的context出堆栈
    UIGraphicsEndImageContext();
    
    // 返回新的改变大小后的图片
    return scaledImage;
}

抱歉!评论已关闭.