2011-11-17 3 views
3

CICrop을 사용하여 이미지의 상단과 하단을 잘라서 특정 크기로 자릅니다.코어 이미지 : CICrop 사용 후 합성 필터 적용이 일치하지 않습니다.

그런 다음 CIMultiplyCompositing 필터와 같은 것을 적용하여 자른 이미지를 다른 이미지와 결합합니다.

두 이미지의 크기는 같지만 결과적으로 두 이미지가 정렬되지 않고 하나가 오프셋됩니다.

그래서, 나는 다음을 확인 :

image after crop: 0, 136, 3264, 2176 
second image: 0, 0, 3264, 2176 
: 나는 (CICrop을 사용하는 결과를)보고 있어요 자른 이미지의 origin.y 오프셋 것을 보여줍니다

NSLog(@"image after crop: %g, %g, %g, %g", imageToFilter.extent.origin.x, 
         imageToFilter.extent.origin.y, 
         imageToFilter.extent.size.width, 
         imageToFilter.extent.size.height); 

NSLog(@"second image: %g, %g, %g, %g", secondImage.extent.origin.x, 
         secondImage.extent.origin.y, 
         secondImage.extent.size.width, 
         secondImage.extent.size.height); 

그래서 자른 이미지를 "범위"rect로 재설정 할 수있는 방법이 있습니까? origin.y는 0입니다. docs에서 CIImage를 확인하면 "extent"는 읽기 전용 속성입니다.

다른 이미지 유형/원시 데이터로 비효율적 인 변환을 수행 한 다음 CIImage로 다시 변환해야합니까?

어떤 조언을 주셔서 감사합니다.

답변

6

나는 이것에 대한 대답을 알아 냈습니다 ... 쉬운 방법입니다. 효과적으로 0

에 다시 Y 원점을 이동

imageToFilter = [imageToFilter imageByApplyingTransform:CGAffineTransformMakeTranslation(0, -imageToFilter.extent.origin.y)]; 

을 : 난 그냥 "번역"과 같이, 그것을 자르기 후 CIImage에 변환을 적용 할 필요

관련 문제