我有一个麻烦制造重新可观矩形用于裁剪我的图片。我想实现这样的画面:

http://img192.imageshack.us/img192/8930/customcropbox.jpg

好了,唯一的问题是我不知道从哪里真正开始。我需要一些建议,我怎么能实现裁剪的这种效果。我应该读什么文件了吗?核芯显卡或石英2d的?都?我已经编码为iPhone,因为它的发行日期,但我从来没有实际使用核心图形等任何帮助或建议,将不胜感激。我会扔我的代码在这里为我进步,以显示它是如何,当我实现它来完成。 :-)此外,该矩形框是在屏幕上移动在一个UIImageView这只会使它更有趣。感谢您的帮助,我期待着实现这一目标。

有帮助吗?

解决方案

书签我问题这是完全一样的。

我得到尽可能走动我的裁剪图,它具有正确显示图像的所述部分,但是处理滚动视图变焦正在进行中的作业。目前我有一个ImageView的朴素的UIView在UIScrollView的分层,然后外面的滚动型的,并在更高层次上为我的自定义裁剪的UIView。我实现触摸的方法来处理拖拽它,也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);

其他提示

石英是“营销术语”对核芯显卡,而这也正是你应该开始。你需要使用一个UIView(全定制在-drawRect :),陷阱绘制并跟踪其触摸,然后得出的结果。你可以使用UIGraphicsGetCurrentContext当前图形上下文()。这应该是足够让你开始!

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top