裁剪并重新创建UIImage

时间:2014-04-11 13:47:20

标签: ios objective-c uiimage crop

我想在对它进行像素操作之前裁剪UIImage(不是imageview)。在ios框架中有可靠的方法吗?

以下是我正在使用的android中的相关方法:

http://developer.android.com/reference/android/graphics/Bitmap.html#createBitmap(android.graphics.Bitmap, int, int, int, int) http://developer.android.com/reference/android/graphics/Bitmap.html#createBitmap(int, int, android.graphics.Bitmap.Config)

3 个答案:

答案 0 :(得分:5)

-(UIImage*)scaleToSize:(CGSize)size image:(UIImage*)image
{
    UIGraphicsBeginImageContext(size);

    // Draw the scaled image in the current context
    [image drawInRect:CGRectMake(0, 0, size.width, size.height)];

    // Create a new image from current context
    UIImage* scaledImage = UIGraphicsGetImageFromCurrentImageContext();

    // Pop the current context from the stack
    UIGraphicsEndImageContext();

    // Return our new scaled image
    return scaledImage;
}

答案 1 :(得分:0)

我建议你看看:

  • 用于创建图像上下文的CoreAnimation Apple框架,在其中绘制并将其保存为RAM中的UIImage或将其保存到磁盘。

  • CoreImage Apple框架,如果您想要一个功能强大且完全可自定义的图像处理解决方案。

  • 用于裁剪和调整图像大小的第三方库:CocoaPods是一种快速集成这种类型库的好方法......以下列出了一些有趣的image manipulation pods

答案 2 :(得分:0)

这对我有用:

-(UIImage *)cropCanvas:(UImage *)input x1:(int)x1 y1:(int)y1 x2:(int)x2 y2:(int)y2{
    CGRect rect = CGRectMake(x1, y1, input.size.width-x2-x1, input.size.height-y2-y1);
    CGImageRef imageref = CGImageCreateWithImageInRect([input CGImage], rect);
    UIImage *img = [UIImage imageWithCGImage:imageref];
    return img;
}