在ios中的UIimage视图中进行图像裁剪

时间:2013-01-31 11:27:35

标签: iphone ios uiimageview uiimage

  

可能重复:
  Cropping a UIImage

我有一个UIImage视图,因为我需要在UIImage视图中裁剪一些空间并需要存储为Uiimage.And传递给另一个保存图像的视图。

2 个答案:

答案 0 :(得分:0)

使用核心图形功能裁剪图像有很多方法,最基本的方法是:

CGRect cropRect = CGRectMake(0, 0, 100, 100);
CGImageRef cropped_img = CGImageCreateWithImageInRect(yourUIImage.CGImage, cropRect)

另请查看以下教程

How to Crop an Image (UIImage) On iOS

答案 1 :(得分:0)

这可能会有所帮助。它主要是从我的代码中复制粘贴。

我有一个大的UIImageView与原始图像 - mImageViewCropper , 然后我有一个半透明的视图, 然后覆盖一个较小的UIImageView - mImageViewCropperSmallWindow 。 (它看起来像Instragram中的裁剪器)

在pinchGesture和panGesture上,我调整了小图像视图的大小,然后我调用了以下函数,该函数将加载到小图像中查看大图中对应的裁剪图像。

-(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;        
}

- 这种方法远非完美,但它是一个起点