【问题标题】:Cropping ellipse using core image in ios在 ios 中使用核心图像裁剪椭圆
【发布时间】:2012-08-27 08:04:35
【问题描述】:

我想从 ios 中的图像中裁剪出一个椭圆。使用核心图像框架,我知道要裁剪一个反应角区域。

使用核心图形,我可以裁剪椭圆区域。但是,裁剪图像的大小与原始图像的大小相同,因为我将蒙版应用于椭圆之外的区域。

因此,我们的目标是从图像中裁剪出椭圆区域,并且裁剪后的图像大小不会超过该图像的矩形边界。

任何帮助将不胜感激。提前致谢。

【问题讨论】:

    标签: ios core-graphics core-image


    【解决方案1】:

    你必须创建一个正确大小的上下文,试试下面的代码:

    - (UIImage *)cropImage:(UIImage *)input inElipse:(CGRect)rect {
        CGRect drawArea = CGRectMake(-rect.origin.x, -rect.origin.y, input.size.width, input.size.height);
    
        UIGraphicsBeginImageContext(rect.size);
        CGContextRef ctx = UIGraphicsGetCurrentContext();
    
        CGContextAddEllipseInRect(ctx, CGRectMake(0, 0, rect.size.width, rect.size.height));
        CGContextClip(ctx);
    
        [input drawInRect:drawArea];
    
        UIImage *img = UIGraphicsGetImageFromCurrentImageContext();
        UIGraphicsEndImageContext();
        return img;
    }
    

    也许您必须根据自己的需要调整drawArea,因为我没有对其进行测试。

    【讨论】:

    • 我给了一个图像和矩形作为此方法的输入,并尝试在 imageView 上设置返回的图像。什么都没有显示。你能检查一下你的代码是否运行良好。
    • 我有 2 个裁剪计算错误,我会修复它并稍后编辑我的答案
    猜你喜欢
    • 1970-01-01
    • 2012-06-20
    • 2014-05-01
    • 2017-06-14
    • 2014-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多