截取UIImage大小(可以用于制作缩略图)

来源:互联网 发布:条码采集器软件 编辑:程序博客网 时间:2024/06/04 20:08


+(UIImage *)scaleImage:(UIImage *)image toScale:(CGSize)reSize

{

    

   float drawW = 0.0;

   float drawH = 0.0;

    

   CGSize size_new = image.size;

    

   NSLog(@"%f",size_new.width);

   NSLog(@"%f",reSize.width);

   NSLog(@"%f",size_new.height);

   NSLog(@"%f",reSize.height);

    NSLog(@"------------------------------------");

   if (size_new.width >= reSize.width) {

        drawW = (size_new.width - reSize.width)/2.0;

    }

   if (size_new.height >= reSize.height) {

        drawH = (size_new.height - reSize.height)/2.0;

    }

    

    //截取截取大小为需要显示的大小。取图片中间位置截取

   CGRect myImageRect = CGRectMake(drawW, drawH, reSize.width, reSize.height);

   UIImage* bigImage= image;

    image =nil;

   CGImageRef imageRef = bigImage.CGImage;

   CGImageRef subImageRef = CGImageCreateWithImageInRect(imageRef, myImageRect);

    

    UIGraphicsBeginImageContext(reSize);

    CGContextRef context =UIGraphicsGetCurrentContext();

    

   CGContextDrawImage(context, myImageRect, subImageRef);

   UIImage* smallImage = [UIImageimageWithCGImage:subImageRef];

    UIGraphicsEndImageContext();

    

   return smallImage; 

}

0 0