可能重复:
裁剪 UIImage
我有一个 UIImage 视图,因为我需要在该 UIImage 视图中裁剪一些空间并需要存储为 Uiimage。然后传递到保存图像的另一个视图。
可能重复:
裁剪 UIImage
我有一个 UIImage 视图,因为我需要在该 UIImage 视图中裁剪一些空间并需要存储为 Uiimage。然后传递到保存图像的另一个视图。
这可能会有所帮助。它主要是从我的代码中复制粘贴。
我有一个带有原始图像的大 UIImageView - mImageViewCropper,然后我有一个半透明视图,然后是一个较小的 UIImageView 覆盖 - mImageViewCropperSmallWindow。(它看起来像 Instragram 中的裁剪器)
在 pinchGesture 和 panGesture 上,我调整了小 imageView 的大小,然后我调用了以下函数,它将大图片中对应的裁剪图像加载到小 imageView 中。
-(void)refreshImageInMImageViewCropperSmallWindow
{
    double imageBeginX = 0; //we need to set these because of possible ratio mismatch (black stripes)
    double imageEndX = 0;
    double imageBeginY = 0;
    double imageEndY = 0;
    CGSize imageSize = mImageViewCropper.image.size;
    imageBeginX = mImageViewCropper.frame.size.width /2 - imageSize.width/2;
    imageEndX = mImageViewCropper.frame.size.width /2 + imageSize.width/2;
    imageBeginY = mImageViewCropper.frame.size.height /2 - imageSize.height/2;
    imageEndY = mImageViewCropper.frame.size.height /2 + imageSize.height/2;
    CGRect smallFrame = mImageViewCropperSmallWindow.frame;
    UIImage *croppedImage = [mImageViewCropper.image crop: CGRectMake(smallFrame.origin.x - imageBeginX, smallFrame.origin.y - imageBeginY, 
    smallFrame.size.width, smallFrame.size.height)];
    mImageViewCropperSmallWindow.image = croppedImage;        
}
-方法远非完美,但它是一个起点
有很多方法可以使用 Core Graphics 函数裁剪图像,最基本的一种是:
CGRect cropRect = CGRectMake(0, 0, 100, 100);
CGImageRef cropped_img = CGImageCreateWithImageInRect(yourUIImage.CGImage, cropRect)
也请检查下面的教程