Я использую CIBloom размыть текст внутри CGImage
, но то, что происходит это CIBloom фильтр, кажется делает мое изображение очень немного меньше.CIBloom делает изображение меньше
Эффект хуже, когда ядро фильтра больше. Я как бы ожидал этого, но мне нужен способ отключить его, или формулу для изменения размера изображения, чтобы каждая буква была точно такого же размера, как и раньше. Я оставляю поля на исходном изображении.
Перед CIBloom фильтра:
После CIBloom фильтра:
код, который размывает фильтр:
CGImageRef cgImageRef = CGBitmapContextCreateImage(tex->cgContext) ;
CIImage *cii = [CIImage imageWithCGImage:cgImageRef] ;
CIFilter *filter = [CIFilter filterWithName:@"CIBloom"] ; //CIGaussianBlur
[filter setValue:cii forKey:kCIInputImageKey];
[filter setValue:[NSNumber numberWithFloat:1.1f] forKey:@"inputIntensity"];
// Large radius makes result EVEN SMALLER:
//[filter setValue:[NSNumber numberWithFloat:100.f] forKey:@"inputRadius"];
CIContext *ciContext = [CIContext contextWithOptions:nil];
CIImage *ciResult = [filter valueForKey:kCIOutputImageKey];
CGImageRef cgIRes = [ciContext createCGImage:ciResult fromRect:[ciResult extent]];
//Clear old tex
tex->clearBacking(0, 0, 0, 1) ;
// Drop CIImage result into texture raw data
CGContextDrawImage(tex->cgContext, CGRectMake(0, 0, tex->w, tex->h), cgIRes) ;
Мне нравится CIBloom
фильтр, но мне нужны результаты, чтобы быть того же размера, что и у моего исходного изображения, а не с понижением.
чувак спасибо, я искал решения этого на некоторое время теперь – Roecrew
я не в конечном итоге использовать его. Вместо этого я написал свой собственный фильтр цветения на основе кода [Philip Rideout] (http://prideout.net/archive/bloom/) – bobobobo
, что такое tex в этом –