0
我想在UIImage中寫一些文字,我發現這個link它可以工作,但是如果你嘗試寫一些特殊字符如「á,é,í,ö,ô...」那麼它就會失敗。如何在UIImage中使用特殊字符編寫一些文本?
代碼:
//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];
,但它不工作。
已經我已經嘗試過,但它是沒有問題的,我雖然問題是:CGContextSelectFont(上下文,「Arial」,18,kCGEncodingMacRoman);但我不知道如何解決它。 – torhector2
您是否找到任何解決方案? – Satyam
是的,接受的職位是解決方案。 – torhector2