CGImageCreateWithImageInRect를 사용하여 사진을자를 때가 있습니다. 내 응용 프로그램은 사용자가 316 x 316보기를 채울 때까지 이미지를 이동/확대 한 다음 상자 외부의 모든 영역을 자르고 UIImage로 이미지를 저장하려고합니다. x와 y 이미지 뷰 원점의 절대 값을 취하여 자르기 원점을 결정합니다. 이미지 뷰를 포함하는 뷰/상자의 0,0으로 다시 가져옵니다. 코드는 다음과 같습니다.CGImageCreateWithImageInRect가 올바르게 자르지 않음
CGRect croppedRect = CGRectMake(fabs(widthDistanceToOrigin), fabs(HeightDistanceToOrigin), 316, 316);
CGImageRef croppedImageRef = CGImageCreateWithImageInRect(image.CGImage, croppedRect);
UIImage *croppedImage = [UIImage imageWithCGImage: croppedImageRef scale: 1/(imageScale) orientation: image.imageOrientation];
CGImageRelease(croppedImageRef);
이것은 나를 미치게합니다. 나는 정확하게 크기를 맞춰야하지만, 문제는 x와 y 원점의 자르기 직사각형과 같아서, 찍어야 할 영역에서 조금 벗어났습니다 (때로는 이상한 결과를 얻습니다).
또한 휴대 전화 카메라로 찍은 이미지의 경우 올바른 크기가되도록 자르기 직사각형의 모든 부분에 2를 곱해야합니다. 엄청 이상해.
누구나이 문제를 해결하는 방법을 알고 있거나 다른 사람이 자르기에 더 좋은 방법이 있는지 궁금합니다 (내 사진에서 영역을 잘라야한다는 사실을 명심하십시오). 감사!
솔루션에서 답을 제공하고 시스템에서 허용하는 경우 받아들입니다. –