我想在对它进行像素操作之前裁剪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)
答案 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;
}