iPhone-如何制作可调整大小的矩形来裁剪图像?

iPhone-如何制作可调整大小的矩形来裁剪图像?,iphone,iphone-sdk-3.0,crop,iphone-sdk-3.1,Iphone,Iphone Sdk 3.0,Crop,Iphone Sdk 3.1,我在制作一个可重新调整大小的矩形以裁剪图像时遇到了问题。我正在努力实现以下目标: 唯一的问题是我不知道从哪里开始。我需要一些建议,如何才能达到这种种植效果。我应该阅读哪些文档?核心图形还是石英2d?二者都从iPhone发布之日起,我就一直在为它编写代码,但我从未真正使用过核心图形等。任何帮助或建议都将不胜感激。我将在这里抛出我的代码,以展示我实现它时是如何完成的。:-)此外,这个矩形框在UIImageView中可以在屏幕上移动,这使它更有趣。感谢您的帮助,我期待着实现这一目标。石英是核心图形的

我在制作一个可重新调整大小的矩形以裁剪图像时遇到了问题。我正在努力实现以下目标:


唯一的问题是我不知道从哪里开始。我需要一些建议,如何才能达到这种种植效果。我应该阅读哪些文档?核心图形还是石英2d?二者都从iPhone发布之日起,我就一直在为它编写代码,但我从未真正使用过核心图形等。任何帮助或建议都将不胜感激。我将在这里抛出我的代码,以展示我实现它时是如何完成的。:-)此外,这个矩形框在UIImageView中可以在屏幕上移动,这使它更有趣。感谢您的帮助,我期待着实现这一目标。

石英是核心图形的“营销术语”,您应该从这里开始。您需要使用UIView(在-drawRect:中使用完全自定义图形),捕捉并跟踪其接触,然后绘制结果。可以使用UIGraphicsGetCurrentContext()获取当前图形上下文。这应该足够让你开始了

将完全相同的内容添加到我的书签中

我尽可能地在裁剪视图中移动,并让它正确显示图像的部分,但是处理scrollview缩放是一项正在进行的工作。目前,我在UIScrollview中有一个imageview和普通UIView分层,然后在scrollview之外,在更高的级别上是我的自定义裁剪UIView。我实现了touch方法来处理拖拽,还实现了drawRect:

- (void)drawRect:(CGRect)rect {
    // Drawing code
    if( self.image == nil )
        return;

    CGPoint offset = scrollView.contentOffset;
    clipRect = CGRectOffset(self.frame, offset.x, offset.y);

    UIImage *croppedImage = [image croppedImage:clipRect];
    CGContextRef ctx = UIGraphicsGetCurrentContext();
    [croppedImage drawAtPoint:CGPointMake(0, 0)];
}
注意:我的裁剪视图不是UIImageView的后代,它只是UIView,引用了另一个视图中的基础图像

“croppedImage”是UIImage上的一个类别,非常简单:

@implementation UIImage (Resize)
- (UIImage *)croppedImage:(CGRect)bounds {
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds);
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    return croppedImage;
}
...
@end
我已经实现了一些UIScrollViewDelegate方法,并通过滚动活动来保持裁剪视图的同步。缩放也被传递,但正如前面提到的,还没有按预期工作

另一个注意事项:我认为没有必要每次都浪费时间用裁剪区域生成一个新的UIImage,因为同样的情况也可能发生

CGImageRef imageRef = CGImageCreateWithImageInRect([yourImage CGImage], bounds);
and 
CGContextDrawImage(ctx, clipRect, imageRef);

您好,这肯定会对您有所帮助。请看一眼:您好,您找到解决方案了吗?我正面临着一个完全相同的问题。如果您想像下图那样进行裁剪,请使用此选项: