绘制半图像

时间:2009-12-08 05:34:30

标签: iphone

大家好我有.png图片。我想只画这个图像的一半。如果我调用方法drawInRect:在宽度是图像大小一半的图像上,它仍然会绘制完整的图像 在给定的rect.So如何绘制半图像

4 个答案:

答案 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);