2013-11-04 36 views
6

İki görüntüyü karıştırmak için CISourceOverCompositing kullanıyorum.CIFilter: Farklı boyuttaki resimleri karıştırın

imageForeground: örneğin,

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

Şimdi farklı görüntü boyutlarına sahip: Bu kod ile aynı boyutta görüntülerle Tamam çalışan 50px x 50px

imageBackground: 500px x 500px

Önceki kod, imageForeground öğesini, outputImage öğesinin (0, 0) konumunda ayarlar.

Bu görüntüleri, imageForeground'u konumlandırarak, örneğin (100, 100) konumunda nasıl karıştırabilirim?

Şimdiden teşekkürler!

cevap

12

Gayet kolay - sadece bu yüzden gibi giriş görüntüsünü dönüşümü:

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

Mükemmel çalışıyor. Teşekkür ederim! –

+0

Teşekkürler kardeşim, günümü kurtar. – hmdeep