2011-08-10 1 views
8

나는 이것에 대한 대답을 잠시 보았지만 아무 것도 발견하지 못했습니다. CIAffineTransform that is iOS 5 Beta 중 하나를 사용하려고 시도하고 있는데 문제가 생겼습니다. 설명서에서는 'inputTransform'속성이 NSAffineTransform을 허용하지만 근처에서는 말할 수있는 것처럼 iOS에서 이들 중 하나를 인스턴스화 할 수있는 방법이 없습니다. 모든 특정 연구가 MacOS에 대한 것입니다. 내가 틀렸다면).어떻게 iOS 5에서 CIAffineTransform에 대한 inputTransform을 설정합니까?

그런 경우라면 inputTransform에 어떤 값을 넣을까요?

다음은 간단한 목표 코드입니다.

CIImage* result = "Some CIImage"; 


CIFilter* filter = [CIFilter filterWithName:@"CIAffineTransform"]; 
[filter setValue:result forKey:kCIInputImageKey]; 

[filter setValue:transform forKey:@"inputTransform"]; //What type/class of value do I set here if I can't use an NSAffineTransform 

result = [filter outputImage]; 

도움이 될 것입니다.

답변

21

해결책을 찾았는데, 나는 잘못된 장소를보고있었습니다.

-(CIImage*) imageByApplyingTransform:(CGAffineTransform)transform 

이 방법이 적용되는 CGAffineTransform 인수를 가지고있는 이미지를 반환하는 대신 CIImage에 CIAffineTransform 필터를 사용

는 CIImage 실제로라는 방법을 제공한다. 누군가를하는 데 도움이

희망은 Core Image Filter Reference

+0

감사합니다. 2 년 후에도 도움이됩니다. CIAffineTransform을 [NSValue valueWithBytes : & xform objCType : @encode (CGAffineTransform)] 또는 [NSValue valueWithCGAffineTransform : xform]과 함께 사용할 때 왜 필자의 필터가 nil을 울리는 지 궁금합니다. – CodePlumber

+0

이것은 매우 유용하지만, iOS 7+ 이하를 지원한다면 iOS 8+이므로 @William Jockusch의 솔루션을 사용해야합니다. –

1

을 :).

CGAffineTransform xForm = whatever; 
[myFilter setValue:[NSValue valueWithBytes:&xForm objCType:@encode(CGAffineTransform)] forKey:@"inputTransform"];