如何在目标 c 中裁剪图像?

Posted

技术标签:

【中文标题】如何在目标 c 中裁剪图像?【英文标题】:How to crop the image in objective c? 【发布时间】:2013-08-13 09:41:48 【问题描述】:

用户可以更改在编辑屏幕中默认显示的裁剪框大小。我尝试使用以下代码:

- (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect 

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

但它裁剪了固定区域。如何裁剪用户选择的区域?

【问题讨论】:

尝试将不同的 CGRect 传递给您的给定函数,它将起作用。我不认为你的代码有任何问题。你的语言基础有问题。我建议,请阅读一些关于 Objective-C 的书籍或苹果文档。 【参考方案1】:

获取裁剪图像:

UIImage *croppedImg = nil;
CGRect cropRect = CGRectMake("AS YOu Need"); //set your rect size.
croppedImg = [self croppIngimageByImageName:self.imageView.image toRect:cropRect];

使用以下代码调用 croppIngimageByImageName:toRect: 方法,返回 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;
    

【讨论】:

【参考方案2】:
    CGRect clippedRect  = CGRectMake(0 ,0,180 ,180);
    CGImageRef imageRef = CGImageCreateWithImageInRect(imgVw1.image.CGImage, clippedRect);
    UIImage *newImage   = [UIImage imageWithCGImage:imageRef];
    CGImageRelease(imageRef);
    imgVw1Cliped.image=newImage;

    NSLog(@"%d",imgVw1Cliped.image.imageOrientation);

【讨论】:

@user2677875 当您对答案感到满意时,请为这个答案投票。bcz 您的投票将对 Mohit 有所帮助。这个答案在我的项目中有效。 @Mohit 此代码似乎不再有效。给 ios8 一个错误。

以上是关于如何在目标 c 中裁剪图像?的主要内容,如果未能解决你的问题,请参考以下文章

如何在c#中用多边形裁剪图像

如何在 appcelerator 中裁剪图库图像?

如何在浏览器下载之前将图像裁剪为客户端分辨率

如何在 php 中保留图像裁剪时的透明颜色?(仅保存在 jpg 文件中)

如何在不更改 C#.Net 中的分辨率的情况下裁剪图像?

C++-图像目标区裁剪ImageCropping