Пример кода:
NSAttributedString *text = [[NSAttributedString alloc] initWithString:@"Hello world" attributes:@{
NSFontAttributeName:[UIFont systemFontOfSize:100],
NSForegroundColorAttributeName:[UIColor redColor]
}];
CIFilter *textGenerator = [CIFilter filterWithName: @"CIAttributedTextImageGenerator"
keysAndValues: @"inputText", text,nil];
CIImage *image= [textGenerator valueForKey: @"outputImage"];
Когда я изменяю цвет текста для того же текста, например [UIColor blueColor], и снова фильтрую. Я получаю старую текстуру текста с помощью redColor.
И я нахожу, что, если не изменить текстовое содержимое на другое (получить правильную текстуру) или масштабировать текстуру (иметь неправильный переключатель отображения со старой и новой текстурой).
Это ошибка diff или функция CIAttributedTextImageGenerator ...?
Как я могу получить правильную текстуру ...?
Только можно использовать его как базовую c текстуру, а для рендеринга цвета использовать другой CIFilter?
Или есть другой способ быстрого рендеринга текста?
Спасибо !!!
Я пишу простой демонстрационный код, подобный следующему:
NSAttributedString *firstText = [[NSAttributedString alloc] initWithString:@"Hello world"
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:100],
NSForegroundColorAttributeName:[UIColor redColor]}];
CIFilter *textGenerator1 = [CIFilter filterWithName: @"CIAttributedTextImageGenerator"
keysAndValues: @"inputText", firstText,nil];
CIImage *texture1= [textGenerator1 valueForKey: @"outputImage"];
self.firstImageView.image = [UIImage imageWithCIImage:texture1];
NSAttributedString *secondText = [[NSAttributedString alloc] initWithString:@"Hello world"
attributes:@{NSFontAttributeName:[UIFont systemFontOfSize:100],
NSForegroundColorAttributeName:[UIColor blueColor]}];
CIFilter *textGenerator2 = [CIFilter filterWithName: @"CIAttributedTextImageGenerator"
keysAndValues: @"inputText", secondText,nil];
CIImage *texture2= [textGenerator2 valueForKey: @"outputImage"];
self.secondImageView.image = [UIImage imageWithCIImage:texture2];
Отображение результата: [https://i.stack.imgur.com/NABBu.png] [1]