0

나는 맞춤 이미지 자르기를 제공하는 응용 프로그램을 만들고 있습니다 .... 사용자가 리사이즈한다 화상하여 사각형 &의 일부를 선택하는 는 ...... 부분을 잘라내 사용자 터치에 따라 이동 될 수크기 조정 및 터치로 화면상에서 이동할 수있는 이미지에 직사각형을 그립니다.

내가하여 다음 부분을 잘라낼 수 있도록 이미지에 사각형 할 방법

내가

-(void) cropImage 
{ 
    CGSize size = iv.frame.size; 

    CGRect rect = CGRectMake(size.width/4, size.height/4, size.width/2,size.height/2); 

    CGImageRef imageRef = CGImageCreateWithImageInRect([iv.image CGImage], rect);  
    UIImage *img = [UIImage imageWithCGImage:imageRef]; 

    CGImageRelease(imageRef);   

    // Display Image  
    UIImageView *imageView = [[UIImageView alloc] initWithImage:img];  
    [imageView setFrame:CGRectMake(70.0, 480.0,(size.width/2), (size.height/2))];  
    [scrollView addSubview:imageView]; 

    [imageView release]; 

    [scrollView scrollRectToVisible:imageView.frame animated:YES]; 

} 

내가 터치에 의해 이동 터치 &으로 크기를 조정할 수 있습니다 RECT을 그리기위한 솔루션을 원하는 방법에 따라 이미지에 RECT자를 수 있어요

...

나는 아이폰에 익숙하다. .... pls 어떻게 도와 줘야합니까?

답변

2

..

만약 누군가가 이보다 더 좋은 냄비를주세요 ... .... 그 대답을 받아 들일 자격이 있다면

0

두 손가락으로 UILongGesture을 사용하는 간단한 방법이 있습니다. 선택 사각형은 닿기 만합니다. SelectionView는 처음에 UIView입니다.

UIViewController의 제스처의 초기화이다 :

UILongPressGestureRecognizer *twoFingerLongGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleTwoFingerLongGesture:)]; 
[twoFingerLongGesture setNumberOfTouchesRequired:2]; 
[self.view addGestureRecognizer:twoFingerLongGesture]; 

그리고 이것은 제스처를 처리 할 수 ​​있습니다 : 난이 링크 Image Cropper를 형성하는 좋은 예에서 내 대답을 얻었다

- (void)handleTwoFingerLongGesture:(UIGestureRecognizer *)sender 
{ 
    switch (sender.state) { 
     case UIGestureRecognizerStateBegan: 
     { 
      NSLog(@"mainView 2FingerLONG - UIGestureRecognizerStateBegan"); 
      CGPoint p1 = [sender locationOfTouch:0 inView:self.view]; 
      CGPoint p2 = [sender locationOfTouch:1 inView:self.view]; 
      [self updateFrameSelectionWithPoint1:p1 point2:p2]; 
      [self.view bringSubviewToFront:selectionView]; 
      selectionView.hidden = NO; 
      break; 
     } 
     case UIGestureRecognizerStateChanged: 
     { 
      NSLog(@"mainView 2FingerLONG - UIGestureRecognizerStateChanged"); 
      CGPoint p1 = [sender locationOfTouch:0 inView:self.view]; 
      CGPoint p2 = [sender locationOfTouch:1 inView:self.view]; 
      [self updateFrameSelectionWithPoint1:p1 point2:p2]; 
      break; 
     } 
     case UIGestureRecognizerStateEnded: 
     { 
      selectionView.hidden = YES; 
      // Here you must perform the selection 
      break; 
     } 
     case UIGestureRecognizerStateCancelled: 
     { 
      selectionView.hidden = YES; 
      break; 
     } 
     default: 
      break; 
    } 
} 

- (void) updateFrameSelectionWithPoint1:(CGPoint)p1 point2:(CGPoint)p2 
{ 
    CGRect frameSelection; 
    frameSelection.origin.x = fminf(p1.x, p2.x); 
    frameSelection.origin.y = fminf(p1.y, p2.y); 
    frameSelection.size.width = fabsf(p1.x - p2.x); 
    frameSelection.size.height = fabsf(p1.y - p2.y); 
    selectionView.frame = frameSelection; 
} 
+0

답장을 보내 주셔서 감사합니다. fron BJImageCropper –

관련 문제