を見つけ
質問は非常に明確ではないとして、まだここで役に立つ
かもしれないビュー階層
--> ScrollView
--> ViewBase (View might be zoomed and rotated)
--> TargetImageView (Rect to be cropped (Touch point here for you))
そして、ここでありますそれを行う方法
CGPoint locationInImageView = [self.viewBase convertPoint:self.targetImageview.center toView:self.view]; // received from touch
locationInImageView = [self.view convertPoint:locationInImageView toView:self.imgVPhoto];
UIGraphicsBeginImageContextWithOptions(self.view.frame.size, NO, 0);
[self.imgVPhoto.layer renderInContext:UIGraphicsGetCurrentContext()];
UIImage *img1 = UIGraphicsGetImageFromCurrentImageContext();
UIGraphicsEndImageContext();
// Here 2 is image scale and zoomScale is what it is zoomed :)
CGFloat width = self.targetImageview.frame.size.width * self.zoomScale/2 ;
CGFloat height = self.targetImageview.frame.size.height * self.zoomScale/2;
CGFloat xPos = (locationInImageView.x * 2) - width/2;
CGFloat yPos = (locationInImageView.y * 2) - height/2;
CGRect rect1 = CGRectMake(xPos, yPos, width, height);
CGImageRef imageRef = CGImageCreateWithImageInRect([img1 CGImage], rect1);
UIImage *img = [UIImage imageWithCGImage:imageRef scale:img1.scale orientation:img1.imageOrientation];
// Check image here
希望iあなたに役立ちます
さらに詳しい情報やコードなどを提供する必要があります。今すぐあなたがしたいこととその問題は何かを理解することは難しいです。 – ColGraff
画像は実際にはビューの点数と同サイズですか?そうでない場合は、2人の比率を取る必要があります。 – jcaron
私は記録のために投票しませんでした。しかし、実際には、問題を説明するのに十分なコードをまだ用意していません。レイアウト、スケーリング、切り抜きの方法など、いくつかのことに関連している可能性があります。問題を再現するために、より多くの情報を提供できますか? – dfd