如何在 UIImage 中写入一些带有特殊字符的文本?
我想在 UIImage 中写入一些文本,我发现了这个 link 它可以工作,但是如果您尝试编写一些特殊字符,例如“á,é,í,ö,ô...”,那么它会失败。
代码:
//Add text to UIImage
-(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];
}
有什么想法可以解决这个问题吗?
谢谢。
编辑:
我尝试更改:
char* text = (char *)[text1 cStringUsingEncoding:NSASCIIStringEncoding];
但
char* text = (char *)[text1 cStringUsingEncoding:NSUTF8StringEncoding];
它不起作用。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
另一位用户告诉我该怎么做:
在此 链接
Another user told me how to do it:
In this link
尝试使用 NSUTF8StringEncoding 而不是 NSASCIIStringEncoding
try using NSUTF8StringEncoding instead of NSASCIIStringEncoding