, 그것은 다음과 같이 두 개의 사진을 각각의 두 행과 더불어, 1000x500 사진이 될 것이다, 그래서 나는 타일에 노력하고 500x250으로 픽셀을 말할 수 CIAffineTile with Cocoa (이 필터가 가장 적합한 필터인지는 잘 모르겠다.)로 할 수있다.코코아에서 CIAffineTile을 사용하는 방법은 무엇입니까? 내가 노력하고</p> <p><img src="https://i.stack.imgur.com/cbdrf.png" alt="enter image description here"></p> <p>을 : 내가 CIImage이
예상대로 Apple의 문서는 매우 모호하고 암호화되어 있습니다. 분명히 필터가 iOS 및 OSX하지만 OSX 부분에서 다르게 호출해야
는 수수께끼이다. 내가 두 번 각 방향으로 + 2의 사진 크기는, 그들 사이에 2 픽셀 공간을 생성하는 작물보다 타일 필터를 생성,
내가 할 무엇인가
이
는 내가 가지고있는 코드입니다.// the picture has to translate this amount?
CGAffineTransform translate = CGAffineTransformMakeTranslation(pictureWidth+2, pictureHeight+2);
CIFilter *filterTile = [CIFilter filterWithName:@"CIAffineTile"];
[filterTile setValue:[NSValue valueWithBytes:&translate
objCType:@encode(CGAffineTransform)]
forKey:@"inputTransform"];
CIVector *cropRect =[CIVector vectorWithX:0
Y:0
Z:2 * pictureWidth+2
W:2 * pictureHeight+2];
CIFilter *crop = [CIFilter filterWithName:@"CICrop"];
[crop setValue:[filterTile outputImage] forKey:@"inputImage"];
[crop setValue:cropRect forKey:@"inputRectangle"];
이 경우 잘못된 CIImage가 표시됩니다.
변환에 어떤 문제가 : 내가 볼 것은이 무엇입니까? 이미지가 타일로 변환해야하는 픽셀의 양을 가정하지 않았습니까?
가장 이상한 부분 : 변환은 아무거나 될 수 있습니다. 심지어 변환이 동일하고 결과도 동일합니다.
나는 OSX에 작업을 수행하는 방법을 생각하려고이 같은 상상 :
NSAffineTransform *translate = [NSAffineTransform transform];
[translate translateXBy:(pictureWidth + 2) yBy:(pictureHeight + 2];
CIFilter *filterTile = [CIFilter filterWithName:@"CIAffineTile"];
[filterTile setValue:imagem forKey:@"inputImage"];
을하지만 현명한 (???) 이미지 회전 90도 카운터 시계에 끝났다.
이 확인 패딩없이 2 × 2 타일을 수행하는 코드이지만, 왜 이미지는 아핀 내가 어떻게해야합니까? 신원 경우에도 이동 나타납니다 첫 번째 이미지는 0,0에서 시작하여 양쪽 방향으로 타일링됩니다. 이미지가 이미 이동되었습니다. 내 마지막 사진 좀 봐. – SpaceDog
FWIW,이 코드는 Simulator CGAffineTransform xform = CGAffineTransformIdentity; NSValue * xformObj = [NSValue valueWithBytes : & xform objCType : @encode (CGAffineTransform)]; 이미지 = [imageImageParameters : @ {kCIInputTransformKey : image = [image imageByCroppingToRect : CGRectMake (0,0,2 * pictureWidth + 2, 2 * pictureHeight + 2)]; –