2013-11-04 17 views
6

Używam CISourceOverCompositing do łączenia dwóch obrazów. To działa ok z samymi obrazami wielkości z tym kodem:CIFilter: mieszanie obrazów o różnych rozmiarach

CIFIlter *filter1 = [CIFilter filterWithName: @"CISourceOverCompositing"]; 
[filter1 setDefaults]; 
[filter1 setValue: imageForeground forKey: @"inputImage"]; 
[filter1 setValue: imageBackground forKey: @"inputBackgroundImage"]; 
CIImage *outputImage = [filter1 outputImage]; 

teraz mam różne rozmiary obrazu, na przykład:

imageForeground: 50px x 50px

imageBackground: 500px x 500px

Poprzedni kod ustaw obraz obrazu w (0, 0) pozycji outputImage.

Jak mogę połączyć te obrazy pozycjonujące imageForeground, na przykład, w pozycji (100, 100)?

Z góry dziękuję!

Odpowiedz

12

To dość proste - wystarczy przekształcić obraz wejściowy tak:

[filter1 setValue:[imageForeground imageByApplyingTransform:CGAffineTransformMakeTranslation(100, 100)] forKey:kCIInputImageKey] 
+0

działa idealnie. Dziękuję Ci! –

+0

Dziękuję, uratuj mój dzień .... – hmdeep

Powiązane problemy