以另一个 ImageView 的形状裁剪 ImageView

Posted

技术标签:

【中文标题】以另一个 ImageView 的形状裁剪 ImageView【英文标题】:Cropping ImageView in the Shape of Another ImageView 【发布时间】:2013-07-31 13:17:39 【问题描述】:

如何将我的 imageView 裁剪为我在项目中有图像的气泡形状。

【问题讨论】:

这个answer 会很有帮助。 【参考方案1】:

以下是调整大小或裁剪图像的简单代码,您只需根据需要为图像传递高度或宽度

获取裁剪图像:

UIImage *croppedImg = nil;
CGRect cropRect = CGRectMake(AS YOu Need);
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect];

使用下面的方法返回UIImage你想要的图像大小

- (UIImage *)croppIngimageByImageName:(UIImage *)imageToCrop toRect:(CGRect)rect
    
        //CGRect CropRect = CGRectMake(rect.origin.x, rect.origin.y, rect.size.width, rect.size.height+15);

        CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect);
        UIImage *cropped = [UIImage imageWithCGImage:imageRef];
        CGImageRelease(imageRef);

        return cropped;
    

这里你会得到通过上述方法返回的裁剪图像;

或调整大小

对于特定的 hightwidth 以及 image 使用以下方法Resizing UIImage

+ (UIImage*)resizeImage:(UIImage*)image withWidth:(int)width withHeight:(int)height

    CGSize newSize = CGSizeMake(width, height);
    float widthRatio = newSize.width/image.size.width;
    float heightRatio = newSize.height/image.size.height;

    if(widthRatio > heightRatio)
    
        newSize=CGSizeMake(image.size.width*heightRatio,image.size.height*heightRatio);
    
    else
    
        newSize=CGSizeMake(image.size.width*widthRatio,image.size.height*widthRatio);
    


    UIGraphicsBeginImageContextWithOptions(newSize, NO, 0.0);
    [image drawInRect:CGRectMake(0,0,newSize.width,newSize.height)];
    UIImage* newImage = UIGraphicsGetImageFromCurrentImageContext();
    UIGraphicsEndImageContext();

    return newImage;

此方法返回 NewImage,具有您想要的特定大小。

【讨论】:

嗨。 iPatel 我的名字 Ramani 一个帮助,我的项目一个概念是图像裁剪脸形但不是完美的脸形裁剪让我知道任何想法请声明,,,, @RamaniHitesh 请务必让我知道您做了什么或提供了您的源代码。 Uimageview *cropView = [[UIImageView alloc] initWithFrame:CGRectMake(130, 200, 60, 60)]; cropView.clipsToBounds = YES; cropView.layer.masksToBounds = YES; cropView.layer.cornerRadius=cropView.bounds.size.width/2.0f; cropView.layer.borderWidth = 5.0; [cropView.layer setBorderColor:[[UIColor redColor] CGColor]]; CGRect 矩形 = self.cropView.frame; CGRect drawRect = [selfcropRectForFrame:rect]; UIImage *croppedImage = [self imageByCropping:self.image toRect:drawRect];返回裁剪图像; @RamaniHitesh 我认为它会帮助你cocoacontrols.com/controls/mdimagecroper,更多自定义裁剪库你可以从cocoacontrols.com/search?page=1&q=crop找到 先生在这个库中使用,但是这个库只有一个形状我的项目比面部形状还移动图像移动和缩放..“mdimagecropper”免费手库不是我的副业..

以上是关于以另一个 ImageView 的形状裁剪 ImageView的主要内容,如果未能解决你的问题,请参考以下文章

Android 圆角、圆形 ImageView 实现

如何在android中以圆形裁剪图像?

Android 自定义图像视图形状

如何缩放 + 裁剪图像并在 imageview 上显示裁剪的图像

ImageView 裁剪顶部和底部并固定纵横比

如何在 ImageView 中裁剪 UIImage