2012-09-05 5 views
5
- (UIImage *)imageByCropping:(UIImage *)imageToCrop toRect:(CGRect)rect 
{ 
    CGImageRef imageRef = CGImageCreateWithImageInRect([imageToCrop CGImage], rect); 
    UIImage *cropped = [UIImage imageWithCGImage:imageRef]; 
    CGImageRelease(imageRef); 
    return cropped; 
} 

저는이 코드를 사용하고 있습니다. 해결책을 좀주세요. 사전에 감사합니다.이미지 자르기가 iOS 6.0에서 제대로 작동하지 않습니다. 시뮬레이터에서 잘 작동합니다.

+0

샘플 코드 및 자습서 .... http://developer.apple.com/library/mac/#/legacy/mac/library/samplecode/Cropped_Image/Introduction/Intro.html http : //www.icodeblog. co.kr/2010/10/14/working-with-uigesturerecognizers/http://stackoverflow.com/questions/7950719/how-to-crop-the-image-in-iphone http://www.samwirch.com/blog/자르기 및 크기 조정 - 이미지 - 카메라 - ios-and-objective-c http://mobiledevelopertips.com/graphics/how-to-crop-an-image.html – Ayaz

답변

4

CGImageCreateWithImageInRect 이미지 방향이 올바르게 처리되지 않습니다. 자이언트 switch/case 문 (Ayaz의 답변 링크 참조)과 관련된 그물에 많은 이상하고 멋진 자르기 기술이 있지만 UIKit 수준에서 머물러 그림을 그리는 데 UIImage의 메서드 만 사용하는 경우, 모든 핵심적인 세부 사항이 당신을 돌보아줍니다.

다음 방법

는 당신이 얻을 수있는만큼 간단하고 내가 발견 한 모든 경우에 작동합니다

- (UIImage *)imageByCropping:(UIImage *)image toRect:(CGRect)rect 
{ 
    if (UIGraphicsBeginImageContextWithOptions) { 
     UIGraphicsBeginImageContextWithOptions(rect.size, 
               /* opaque */ NO, 
               /* scaling factor */ 0.0); 
    } else { 
     UIGraphicsBeginImageContext(rect.size); 
    } 

    // stick to methods on UIImage so that orientation etc. are automatically 
    // dealt with for us 
    [image drawAtPoint:CGPointMake(-rect.origin.x, -rect.origin.y)]; 

    UIImage *result = UIGraphicsGetImageFromCurrentImageContext(); 
    UIGraphicsEndImageContext(); 

    return result; 
} 

당신은 당신이 투명성을 필요로하지 않을 경우 opaque 인수의 값을 변경할 수 있습니다.

+0

답장을 보내 주셔서 감사합니다. 이것은 나의 오래된 소스 코드에서도 작동한다. 내 문제는 자르기 이미지가 훨씬 더 확대되고 흐려 지므로이 문제는 기기에서만 발생합니다. 다른 어떤 생각이라도 친절하게 도와주세요. – Mani

+0

망막 비늘에 문제가있는 것 같습니다. 내가 게시 한 코드는 결과 이미지에서 화면의 눈금을 사용하지만 전달하는 자르기 직사각형이 픽셀이 아니라 점이되도록주의해야합니다. –

+0

픽셀을 전달하는 방법. 당신의 대답을 이해하지 말고 제발 설명해 주시겠습니까? 망막 디스플레이 자르기 문제를 처리하는 방법. – Mani

관련 문제