我想使用相机拍摄一个人的图像,然后在应用程序中编辑图像。该应用程序应该具有裁剪(最好是徒手裁剪)仅离开背景的人的功能,以便我能够在不同背景下使用该人。我不确定如何进行裁剪部分..请在 ios 中帮助我
问问题
1412 次
3 回答
2
我创建了一个可以满足您需求的手绘裁剪工具。
于 2013-02-28T19:50:48.023 回答
0
我已使用此代码手动裁剪图像。我将它用于静止的 UIView,而不是相机图像,但它适用于任何类型的 UIView。这里 startX、startY、endX 和 endY 是在 toucheBegan、touchMove 和 touchEnd 函数中获取的整数值。希望对您有所帮助。
谢谢
UIGraphicsBeginImageContextWithOptions(self.view.bounds.size, self.view.opaque, 0.0);
[self.view.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *image = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
if(self.isRetina){
contentRectToCrop = CGRectMake(startX*2, startY*2, (endX*2-startX*2), endY*2-startY*2);
}else{
contentRectToCrop = CGRectMake(startX, startY, (endX-startX), endY-startY);
}
CGImageRef imageRef = CGImageCreateWithImageInRect([image CGImage], contentRectToCrop);
UIImage *croppedImage = [UIImage imageWithCGImage:imageRef];
于 2013-02-13T13:13:08.867 回答
0
是的,您没有使用正确的视网膜显示检查。上述函数以像素为单位计算裁剪图像。我最初面临同样的问题,但这段代码解决了我的问题,请将此功能与以前的代码一起使用,问题将得到解决。
-(BOOL)isRetina
{
if ([[UIScreen mainScreen] respondsToSelector:@selector(scale)] && [[UIScreen mainScreen] scale] == 2.0) {
return YES;
}
return NO;
}
谢谢
于 2013-02-14T11:38:53.510 回答