大家好我有.png图片。我想只画这个图像的一半。如果我调用方法drawInRect:在宽度是图像大小一半的图像上,它仍然会绘制完整的图像 在给定的rect.So如何绘制半图像
答案 0 :(得分:2)
在调用-drawInRect之前,尝试在当前上下文中设置剪辑蒙版:
UIImage *image = // your image, let's say 100x100
CGRect drawingRect = CGRectMake(0.0f, 0.0f, 100.0f, 100.0f); // adjust the origin; size has to be the image's size
CGRect clippingRect = drawingRect; // copy drawingRect...
clippingRect.size.width = 50.0f; // ...and reduce the width
CGContextRef context = UIGraphicsGetCurrentContext();
CGContextSaveGState(context); // save current graphics state
CGContextClipToRect(context, clippingRect);
[image drawInRect:drawingRect];
CGContextRestoreGState(context); // restore previous state (without clip mask)
答案 1 :(得分:2)
如果它位于UIImageView
,您可以将框架更改为仅适合图像的一半,然后设置[imageView setClipsToBounds:YES]
。
答案 2 :(得分:0)
您可以使用CGImageCreateWithImageInRect
裁剪现有图像答案 3 :(得分:0)
Clip Rect做了神奇的事。谢谢@thomas
CGContextClipToRect(context, clippingRect);