Этот вопрос убивает меня. Я не знаю, что происходит. Но следующий код превращает изображение вверх тормашками. Фактически это делает вертикальный флип, и я не знаю почему.CGContextRef => CGImageRef => CIImage => CGImageRef => Цепочка CGContextDrawImage переворачивает изображение вверх дном
UIFont *font = [UIFont fontWithName:fontName size:fontSize];
NSMutableDictionary *attributes = [[NSMutableDictionary alloc] init];
[attributes setObject:font forKey:NSFontAttributeName];
[attributes setObject:[NSNumber numberWithFloat:kStrokeWidth] forKey:NSStrokeWidthAttributeName];
[attributes setObject:[UIColor redColor] forKey:NSStrokeColorAttributeName];
[attributes setObject:style forKey:NSParagraphStyleAttributeName];
[text drawInRect:drawRect withAttributes:attributes];
[attributes removeObjectForKey:NSStrokeWidthAttributeName];
[attributes removeObjectForKey:NSStrokeColorAttributeName];
[attributes setObject:[UIColor blueColor] forKey:NSForegroundColorAttributeName];
[text drawInRect:drawRect withAttributes:attributes];
CGImageRef cgImg = CGBitmapContextCreateImage(context);
CIImage *beginImage = [CIImage imageWithCGImage:cgImg];
CIContext *cicontext = [CIContext contextWithOptions:nil];
CGImageRef cgimg = [cicontext createCGImage:beginImage fromRect:[beginImage extent]];
CGContextDrawImage(context, [beginImage extent] , cgimg);
CGImageRelease(cgImg);
CGImageRelease(cgimg);
UIImage *newImage = UIGraphicsGetImageFromCurrentImageContext();
Это приведет к следующим образом:
Почему, ну почему?
Возможно, вы потеряете поворот при создании контекста, в котором вызывается этот метод и почему вы создаете также CIContext – Andrea
я создать CIContet оказать? CIImage возвращается в CGImageRef. О какой ротации вы говорите? – Teddy