ios裁剪图片
- (void)drawRect:(CGRect)rect {
CGContextRef context=UIGraphicsGetCurrentContext();
//设置倒立
CGContextRotateCTM(context,M_PI);
//重新设置坐标 self.bounds获取整个屏幕的区域。
CGContextTranslateCTM(context, -self.bounds.size.width,-self.bounds.size.height);
//CGContextScaleCTM(context, 1.0, -1.0);
CGRect imageRect=recti;
//画底图
CGContextDrawImage(context, imageRect, image);
//填充颜色
CGContextSetRGBStrokeColor(context,0.0,0.0,0.0,1.0);
CGContextFillRect(context,self.bounds);
CGRect ret=CGRectMake(0.0, 0.0, 180, 180);
//裁剪
CGContextClipToRect(context, ret);
//获取裁剪区域
CGRect boudsc=CGContextGetClipBoundingBox(context);
int cleft = boudsc.origin.x;
int ctop = boudsc.origin.y;
int cwidth = boudsc.size.width;
int cheight = boudsc.size.height;
//画出裁剪区域
CGContextDrawImage(context, self.bounds, image);
}
方法2:
UIImage *image=[UIImage imageNamed:@"**.png"];
创建矩形
根据矩形创建image
uiimageview.image=[UIimage imagewidthCGImage:CGImageCreateWidthImageInRect:([image CGImage],矩形)];
将image添加到imageview中
显示view
参考:
NSLog(@"image width = %f,height = %f",srcimg.size.width,srcimg.size.height);
UIImageView *imgview = [[UIImageView alloc] init];
imgview.frame = CGRectMake(10, 150, 300, 220);
CGRect rect = CGRectMake(0, 0, 300, 100);//要裁剪的图片区域,按照原图的像素大小来,超过原图大小的边自动适配
CGImageRef cgimg = CGImageCreateWithImageInRect([srcimg CGImage], rect);
imgview.image = [UIImage imageWithCGImage:cgimg];
CGImageRelease(cgimg);//用完一定要释放,否则内存泄露
[self.view addSubview:imgview];