0
我正在实现裁剪功能,并试图弄清楚如何测试裁剪矩形是否完全包含在转换后的图像视图中。即图像的裁剪部分不应该有空白。检查CGRect是否包含在另一个(已转换的)矩形中
我试图复制在这个组件中实现的行为:https://github.com/heitorfr/ios-image-editor,它实现了类似的检查(见下文),但我无法让它适用于我的情况。
- (void)checkBoundsWithTransform:(CGAffineTransform)transform
{
CGRect r1 = [self boundingBoxForRect:self.preview.cropRect
rotatedByRadians:[self imageRotation]];
Rectangle r2 = [self applyTransform:transform
toRect:self.preview.initialImageFrame];
CGAffineTransform t =
CGAffineTransformMakeTranslation(CGRectGetMidX(self.preview.cropRect),
CGRectGetMidY(self.preview.cropRect));
t = CGAffineTransformRotate(t, -[self imageRotation]);
t = CGAffineTransformTranslate(t,
-CGRectGetMidX(self.preview.cropRect), -
CGRectGetMidY(self.preview.cropRect));
Rectangle r3 = [self applyTransform:t toRectangle:r2];
if(CGRectContainsRect([self CGRectFromRectangle:r3],r1)) {
self.validTransform = transform;
}
}
可能重复(http://stackoverflow.com/questions/8981931/cgrectcontainsrect-not-working) – Palpatim
这不是可以用CGRectContainsRect()来解决问题,因为图像视图的变换矩形可以旋转。即它不能用CGRect – Niels