iOS开发 图片缩小 裁剪 虚化

来源:互联网 发布:新网域名转到万网 编辑:程序博客网 时间:2024/05/07 09:58
            //缩小
                /*CGRect rect = CGRectMake(0,0,20,20);//创建矩形框
                UIGraphicsBeginImageContext(rect.size);//根据size大小创建一个基于位图的图形上下文
                CGContextRef currentContext = UIGraphicsGetCurrentContext();//获取当前quartz 2d绘图环境
                CGContextClipToRect(currentContext, rect);//设置当前绘图环境到矩形框
                [image drawInRect:rect];
                
                UIImage *scaledImage = UIGraphicsGetImageFromCurrentImageContext();//获得图片
                UIGraphicsEndImageContext();//从当前堆栈中删除quartz 2d绘图环境*/
//                _background.image = scaledImage;
   
                
//裁剪

方式1
CGRect rectMAX = CGRectMake(SCREEN_WIDTH/3, SCREEN_HEIGHT/3, SCREEN_WIDTH/3, SCREEN_HEIGHT/3);
CGImageRef subImageRef = CGImageCreateWithImageInRect(backgroundImage.CGImage, rectMAX);
UIGraphicsBeginImageContext(rectMAX.size);
CGContextRef context1 = UIGraphicsGetCurrentContext();
CGContextDrawImage(context1, rectMAX, subImageRef);
UIImage *viewImage = [UIImage imageWithCGImage:subImageRef];
UIGraphicsEndImageContext();
CGImageRelease(subImageRef);


方式2
UIImage*image=[UIImage imageNamed:@"1.jpg"];
CGRect rect= CGRectMake(60, 80, 331, 353);//创建矩形框
UIImageView*contentView = [[UIImageView alloc]initWithFrame:rect];
contentView.image=[UIImageimageWithCGImage:CGImageCreateWithImageInRect([image CGImage],rect)];
[self.viewaddSubview:contentView];               
                
                
                //虚化
                /*CIContext *context = [CIContext contextWithOptions:nil];
                CIImage *inputImage = [CIImage imageWithCGImage:scaledImage.CGImage];
                CIFilter *affineClampFilter = [CIFilter filterWithName:@"CIAffineClamp"];
                CGAffineTransform xform = CGAffineTransformMakeScale(1.0, 1.0);
                [affineClampFilter setValue:inputImage forKey:kCIInputImageKey];
                [affineClampFilter setValue:[NSValue valueWithBytes:&xform objCType:@encode(CGAffineTransform)] forKey:@"inputTransform"];
                
                CIImage *extendedImage = [affineClampFilter valueForKey:kCIOutputImageKey];//此处内存泄漏
                CIFilter *blurFilter = [CIFilter filterWithName:@"CIGaussianBlur"];
                [blurFilter setValue:extendedImage forKey:kCIInputImageKey];
                [blurFilter setValue:[NSNumber numberWithFloat:0.8f] forKey:@"inputRadius"];
                CIImage *result = [blurFilter valueForKey:kCIOutputImageKey];
                CGImageRef cgImage = [context createCGImage:result fromRect:[inputImage extent]];
                
                UIImage *returnImage = [UIImage imageWithCGImage:cgImage];
                CGImageRelease(cgImage);*/
0 0
原创粉丝点击