2009-12-28 5 views
5

이미지를자를 수있는 크기가 큰 사각형을 만드는 데 문제가 있습니다. 나는이 그림과 같이 뭔가를 달성하기 위해 노력하고있어 :iPhone - 이미지를자를 수있는 크기를 조정할 수있는 사각형을 만드는 방법은 무엇입니까?

http://img192.imageshack.us/img192/8930/customcropbox.jpg

글쎄, 유일한 문제는 내가 실제로 시작하는 단서가 없다입니다. 이 자르기 효과를 얻을 수있는 방법에 대한 조언이 필요합니다. 어떤 문서를 읽어야합니까? 코어 그래픽 또는 쿼츠 2d? 양자 모두? 나는 출시 날짜 이후로 아이폰을 코딩 해왔지만 핵심 그래픽 등을 실제로 사용한 적이 없다. 어떤 도움이나 조언도 많은 도움이 될 것이다. 내가 코드를 완성 할 때 코드가 어떻게 진행되는지 보여주기 위해 여기서 코드를 포기할 것이다. :-) 또한,이 직사각형 상자는 UIImageView에서 화면을 가로 질러 이동이 가능하여 좀 더 흥미 롭습니다. 도움을 주셔서 감사 드리며 앞으로도이 목표를 달성하기 위해 노력하겠습니다.

+0

과 동일 할 때마다이 가능해야한다 자른 영역으로 새로운있는 UIImage를 생성하는 시간을 낭비 할 필요는 생각하지 않습니다 한번보세요 : https://github.com/barrettj/BJImageCropper/network/members – RayofHope

+0

안녕하세요,이 솔루션을 얻었습니까? 나는 똑같은 문제에 직면하고있다. – ScarletWitch

+1

아래 이미지와 같이 자르기를 원할 경우 https://raw.github.com/yuyak/YKImageCropper/master/Example/screenshot.png 다음을 사용하십시오. https://github.com/yuyak/YKImageCropper – RayofHope

답변

1

북마크 내 question 정확히 동일합니다.

자르기 뷰를 돌아 다니면서 이미지의 일부분을 올바르게 표시하고 있지만 스크롤 뷰 확대/축소를 다루는 작업이 진행 중입니다. 현재 imageview 및 일반 UIView UIScrollview, 다음 scrollview 외부 계층 및 내 사용자 지정 자르기 UIView 높은 수준에서 있습니다. 나는 접촉 방법도의 drawRect 주위에 드래그하고 처리하기 위해 구현 :

- (void)drawRect:(CGRect)rect { 
    // Drawing code 
    if(self.image == nil) 
     return; 

    CGPoint offset = scrollView.contentOffset; 
    clipRect = CGRectOffset(self.frame, offset.x, offset.y); 

    UIImage *croppedImage = [image croppedImage:clipRect]; 
    CGContextRef ctx = UIGraphicsGetCurrentContext(); 
    [croppedImage drawAtPoint:CGPointMake(0, 0)]; 
} 

참고 : 내 자르기보기가있는 UIImageView의 후손 아니라, 다른보기에서 기본 이미지에 대한 참조 만에 UIView를합니다.

@implementation UIImage (Resize) 
- (UIImage *)croppedImage:(CGRect)bounds { 
    CGImageRef imageRef = CGImageCreateWithImageInRect([self CGImage], bounds); 
    UIImage *croppedImage = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    return croppedImage; 
} 
... 
@end 

나는 내가 동기화 내 자르기보기를 유지할 수 UIScrollViewDelegate 방법 몇 가지를 구현 스크롤 활동을 통과했습니다

는 "croppedImage"는있는 UIImage에 카테고리와 매우 간단하다. 확대/축소도 함께 전달되지만 언급 된대로 아직 원하는대로 작동하지 않습니다.

또 다른 참고 : 나는 안녕하세요 그냥 가지고 확실히 당신을 도울 수는

CGImageRef imageRef = CGImageCreateWithImageInRect([yourImage CGImage], bounds); 
and 
CGContextDrawImage(ctx, clipRect, imageRef); 
1

Quartz는 Core Graphics의 '마케팅 용어'로 시작해야합니다. UIView (전체 사용자 정의 드로잉 -drawRect :)를 사용하여 터치를 트랩하고 추적 한 다음 결과를 그릴 수 있습니다. UIGraphicsGetCurrentContext()를 사용하여 현재 그래픽 컨텍스트를 가져올 수 있습니다. 그것은 당신을 시작하게 충분해야합니다!

+0

초기 푸시 덕분에 좋을 것 같습니다. – 0SX

+0

정말 좋은 소리 당신이 그것을 할 샘플 코드를 도울 수있다 – Marios

관련 문제