iOS截取图片的一部分

来源:互联网 发布:ps软件快捷键大全 编辑:程序博客网 时间:2024/05/22 15:24
UIImage* imgeee = [UIImageimageWithCGImage:CGImageCreateWithImageInRect([self.currentImageForCamera.imageCGImage],CGRectMake(0,0,100,100))];

- (UIImage*)getPartOfImage:(UIImage*)img rect:(CGRect)partRect{
    CGImageRef imageRef = img.CGImage;
   
CGImageRef imagePartRef =CGImageCreateWithImageInRect(imageRef, partRect);
   
UIImage *retImg = [UIImageimageWithCGImage:imagePartRef];
   
CGImageRelease(imagePartRef);
   
return retImg;
}
#注释·这种模式会让图片旋转90°。

  1. (UIImage )fixOrientation:(UIImage )aImage {

    if (aImage.imageOrientation == UIImageOrientationUp) return aImage;

    CGAffineTransform transform = CGAffineTransformIdentity;

    switch (aImage.imageOrientation) { case UIImageOrientationDown: case UIImageOrientationDownMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, aImage.size.height); transform = CGAffineTransformRotate(transform, M_PI); break;

     case UIImageOrientationLeft: case UIImageOrientationLeftMirrored:     transform = CGAffineTransformTranslate(transform, aImage.size.width, 0);     transform = CGAffineTransformRotate(transform, M_PI_2);     break; case UIImageOrientationRight: case UIImageOrientationRightMirrored:     transform = CGAffineTransformTranslate(transform, 0, aImage.size.height);     transform = CGAffineTransformRotate(transform, -M_PI_2);     break; default:     break;

    }

    switch (aImage.imageOrientation) { case UIImageOrientationUpMirrored: case UIImageOrientationDownMirrored: transform = CGAffineTransformTranslate(transform, aImage.size.width, 0); transform = CGAffineTransformScale(transform, -1, 1); break;

     case UIImageOrientationLeftMirrored: case UIImageOrientationRightMirrored:     transform = CGAffineTransformTranslate(transform, aImage.size.height, 0);     transform = CGAffineTransformScale(transform, -1, 1);     break; default:     break;

    }

    CGContextRef ctx = CGBitmapContextCreate(NULL, aImage.size.width, aImage.size.height, CGImageGetBitsPerComponent(aImage.CGImage), 0, CGImageGetColorSpace(aImage.CGImage), CGImageGetBitmapInfo(aImage.CGImage)); CGContextConcatCTM(ctx, transform); switch (aImage.imageOrientation) { case UIImageOrientationLeft: case UIImageOrientationLeftMirrored: case UIImageOrientationRight: case UIImageOrientationRightMirrored:

         CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.height,aImage.size.width), aImage.CGImage);     break; default:     CGContextDrawImage(ctx, CGRectMake(0,0,aImage.size.width,aImage.size.height), aImage.CGImage);     break;

    }

    CGImageRef cgimg = CGBitmapContextCreateImage(ctx); UIImage *img = [UIImage imageWithCGImage:cgimg]; CGContextRelease(ctx); CGImageRelease(cgimg); return img;


0 0