В моем приложении я пытаюсь добавить текст на изображение. Я сделал это, используя сообщение в stackoverflow. Это похоже на следующее.Как написать текст на картинке iOS?
+(UIImage *)addText:(UIImage *)img text:(NSString *)text1{
int w = img.size.width;
int h = img.size.height;
//lon = h - lon;
CGColorSpaceRef colorSpace = CGColorSpaceCreateDeviceRGB();
CGContextRef context = CGBitmapContextCreate(NULL, w, h, 8, 4 * w, colorSpace, kCGImageAlphaPremultipliedFirst);
CGContextDrawImage(context, CGRectMake(0, 0, w, h), img.CGImage);
CGContextSetRGBFillColor(context, 0.0, 0.0, 1.0, 1);
char* text = (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];// "05/05/09";
CGContextSelectFont(context, "Arial", 18, kCGEncodingMacRoman);
CGContextSetTextDrawingMode(context, kCGTextFill);
CGContextSetRGBFillColor(context, 255, 255, 255, 1);
//rotate text
CGContextSetTextMatrix(context, CGAffineTransformMakeRotation(-M_PI/4));
CGContextShowTextAtPoint(context, 4, 52, text, strlen(text));
CGImageRef imageMasked = CGBitmapContextCreateImage(context);
CGContextRelease(context);
CGColorSpaceRelease(colorSpace);
return [UIImage imageWithCGImage:imageMasked];
}
Когда я пишу текст, используя этот код, цвет исходного изображения изменяется, как в следующем,
Исходное изображение
Выход с текстом
Может ли кто-нибудь объяснить, почему это происходит. и как это исправить?
Спасибо заранее!
может быть, вы можете просто программно вставить UILabel на UIImage, если вы не можете найти ответ на свой вопрос. –
Нет причин прибегать к возможно дорогостоящему графическому коду. Просто поставьте надпись и сделайте это. – DBoyer
@DBoyer Существует веская причина - если OP фактически хочет создать новое изображение с текстом на нем. – rmaddy